控件的常见属性
修改控件状态
- 在程序运行过程中,我们经常要去修改(更新)UI控件的显示状态,比如:
- 文件下载过程中,实时更新下载进度
- 音乐播放过程中,实时更新播放进度
如何修改控件状态
- 可见,确实需要经常修改控件状态
- 那如何去修改控件的状态呢?方法很简单
- 每一个UI控件都是一个对象
- 修改UI控件的状态,其实就是修改控件对象的属性
- 比如修改UILabel显示的文字,就修改UILabel对象的text属性即可
- 比如修改UIImageView显示的图片,就修改UIImageView对象的image属性即可
- 不难想到,每一个UI控件肯定都有很多属性,比如:
-
UIProgressView进度条控件有progress属性(进度值)
-
UILabel和UITextField都有text属性(显示文字)
-
… …
- 虽然,每一个UI控件都有自己的独特属性,但是有些属性是每个UI控件都具备的,比如每一个UI控件都有自己的位置和尺寸、都有自己的父控件、子控件。于是,所有的UI控件最终都继承自UIView,UI控件的公共属性都定义在UIView中,比如:
-
frame :位置和尺寸
-
center :中心点位置
-
… …
UIView的常见属性
- @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;
- 控件所在矩形框在父控件中的位置和尺寸(以父控件的左上角为坐标原点)
- @property(nonatomic) CGRect bounds;
- 控件所在矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的xy一般为0)
- @property(nonatomic) CGPoint center;
- 控件中点的位置(以父控件的左上角为坐标原点)
UIKit坐标系
- 在UIKit中,坐标系的原点(0,0)在左上角,x值向右正向延伸,y值向下正向延伸
UIView的常见方法
- - (void)addSubview:(UIView *)view;
- 添加一个子控件view
- - (void)removeFromSuperview;
- 从父控件中移除
- - (UIView *)viewWithTag:(NSInteger)tag;
- 根据一个tag标识找出对应的控件(一般都是子控件)