IOS开发之UI控件属性

来源:互联网 发布:淘宝网店模板制作 编辑:程序博客网 时间:2024/06/04 20:02

UI控件常见属性


@property(nonatomic,readonly) UIView *superview;

获得自己的父控件对象


@property(nonatomic,readonly,copy) NSArray *subviews;

获得自己的所有子控件对象


@property(nonatomic) NSInteger tag;

控件的ID(标识),父控件可以通过tag来找到对应的子控件


@property(nonatomic) CGAffineTransform transform;

控件的形变属性(可以设置旋转角度、比例缩放、平移等属性)


@property(nonatomic) CGRect frame;

控件所在矩形框在父控件中的位置和尺寸(以父控件的左上角为坐标原点)

可以定义控件的位置(origin)和大小(size)


@property(nonatomic) CGRect bounds;

控件所在矩形框的位置和尺寸(以自己左上角为坐标原点,所以boundsxy一般为0)

可以定义控件的大小(size)


@property(nonatomic) CGPoint center;

控件中点的位置(以父控件的左上角为坐标原点)

可以定义控件的位置(center)


  • normal(普通状态)
  • 默认情况(Default
  • 对应的枚举常量:UIControlStateNormal
  • highlighted(高亮状态)
  • 按钮被按下去的时候(手指还未松开)
  • 对应的枚举常量:UIControlStateHighlighted
  • disabled(失效状态,不可用状态)
  • 如果enabled属性为NO,就是处于disable状态,代表按钮不可以被点击
  • 对应的枚举常量:UIControlStateDisabled


现在已经有storyboard了,为什么还需要代码创建按钮呢

  • 在开发过程中,并不是每次都通过storyboard拖控件完成UI界面,因为storyboard上面的界面是固定死的,有时候可能会在程序运行过程中动态地添加一些新的控件到界面上
  • 比如QQ的聊天信息,是有人发出一条信息后才动态显示出来的。因此,需要掌握如何用代码动态地添加控件
  • 实际上,storyboard的本质就是根据图形界面描述转成相应的代码



纯代码添加按钮的语句


// 1.创建一个自定义的按钮

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

// 2.添加按钮

[self.view addSubview:btn];

// 3.设置按钮的位置和尺寸

btn.frame = CGRectMake(100, 100, 100, 100);

// 4.监听按钮点击(点击按钮后就会调用selfbtnClick方法)

[btn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];

// 5.设置按钮在默认状态下的属性

// 5.1.默认状态的背景

[btn setBackgroundImage:[UIImage imageNamed:@"btn_01"] forState:UIControlStateNormal];

// 5.2.默认状态的文字

[btn setTitle:@"点我啊" forState:UIControlStateNormal];

// 5.3.默认状态的文字颜色

[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

// 6.设置按钮在高亮状态下的属性

// 6.1.高亮状态的背景

[btn setBackgroundImage:[UIImage imageNamed:@"btn_02"] forState:UIControlStateHighlighted];

// 6.2.高亮状态的文字

[btn setTitle:@"摸我干啥" forState:UIControlStateHighlighted];

// 6.3.高亮状态的文字颜色

[btn setTitleColor:[UIColor blueColor] forState:UIControlStateHighlighted];



transform属性的使用(可以改变位移,缩放,旋转)


  • 创建一个transform属性
  • CGAffineTransform CGAffineTransformMakeTranslation(CGFloat tx,  CGFloat ty) ;
  • CGAffineTransform CGAffineTransformMakeScale(CGFloat sx, CGFloat sy);
  • CGAffineTransform CGAffineTransformMakeRotation(CGFloat angle)

  (注意:angle是弧度制,并不是角度制)

  • 在某个transform的基础上进行叠加
  • CGAffineTransform CGAffineTransformTranslate(CGAffineTransform t, CGFloat tx, CGFloat ty);
  • CGAffineTransform CGAffineTransformScale(CGAffineTransform t, CGFloat sx, CGFloat sy);
  • CGAffineTransform CGAffineTransformRotate(CGAffineTransform t, CGFloat angle)
  • 清空之前设置的transform属性

      view.transform = CGAffineTransformIdentity;


UIColor

  • 一个UIColor代表一种颜色,通过UIColor的类方法,可以获得很多常用的颜色
  • + (UIColor *)blackColor;      // 0.0 white黑色
  • + (UIColor *)darkGrayColor;   // 0.333 white深灰色
  • + (UIColor *)lightGrayColor;  // 0.667 white亮灰色
  • + (UIColor *)whiteColor;      // 1.0 white白色
  • + (UIColor *)grayColor;       // 0.5 white灰色
  • + (UIColor *)redColor;        // 1.0, 0.0, 0.0 RGB红色
  • + (UIColor *)greenColor;      // 0.0, 1.0, 0.0 RGB绿色
  • + (UIColor *)blueColor;       // 0.0, 0.0, 1.0 RGB蓝色
  • + (UIColor *)cyanColor;       // 0.0, 1.0, 1.0 RGB青色
  • + (UIColor *)yellowColor;     // 1.0, 1.0, 0.0 RGB黄色
  • + (UIColor *)magentaColor;    // 1.0, 0.0, 1.0 RGB品红
  • + (UIColor *)orangeColor;     // 1.0, 0.5, 0.0 RGB橙色
  • + (UIColor *)purpleColor;     // 0.5, 0.0, 0.5 RGB紫色
  • + (UIColor *)brownColor;      // 0.6, 0.4, 0.2 RGB棕色
  • + (UIColor *)clearColor;      // 0.0 white, 0.0 alpha清除颜色(空色)



UIImage

  • 一个UIImage对象代表一张图片,一般通过imageNamed:方法就可以通过文件名加载项目中的图片(PNG格式的图片可以省略扩展名)
  • UIImage *image = [UIImage imageNamed:@"btn_01"];



0 0