UI控件
一、简单说明:
1.屏幕上的所有UI元素都叫做控件,也有人叫做视图、组件。按钮(UIButton)、文本(UILabel)都是控件,都具有尺寸、位置、背景色共同属性
2.苹果将控件的共同属性都抽取到父类UIView中,所有的控件最终都继承自UIView
3.每一个控制器(UIViewController)内部都有个默认的UIView属性
@property(nonatomic,retain) UIView *view;
控制器中管理的其他所有控件都是这个view的子控件(直接或者间接)
二、控件的属性:
1.UIView
常见属性:
1 //获得自己的父控件对象 2 @property(nonatomic,readonly) UIView *superview; 3 4 //获得自己的所有子控件对象 5 @property(nonatomic,readonly,copy) NSArray *subviews; 6 7 //控件的ID(标识),父控件可以通过tag来找到对应的子控件 8 @property(nonatomic) NSInteger tag; 9 10 //控件的形变属性(可以设置旋转角度、比例缩放、平移等属性) 11 @property(nonatomic) CGAffineTransform transform; 12 13 //添加一个子控件view 14 - (void)addSubview:(UIView *)view; 15 16 //从父控件中移除 17 - (void)removeFromSuperview; 18 19 //根据一个tag标识找出对应的控件(一般都是子控件) 20 - (UIView *)viewWithTag:(NSInteger)tag; 21 22 //控件矩形框在父控件中的位置和尺寸(以父控件的左上角为坐标原点) 23 @property(nonatomic) CGRect frame; 24 25 //控件矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x、y一般为0) 26 @property(nonatomic) CGRect bounds; 27 28 //控件中点的位置(以父控件的左上角为坐标原点) 29 @property(nonatomic) CGPoint center;
2.UILabel
作用:UILabel极其常用,功能比较专一:显示文字
常见属性:
1 // 显示的文字 2 @property(nonatomic,copy) NSString *text; 3 4 // 字体 5 @property(nonatomic,retain) UIFont *font; 6 7 // 文字颜色 8 @property(nonatomic,retain) UIColor *textColor; 9 10 // 对齐模式(比如左对齐、居中对齐、右对齐) 11 @property(nonatomic) NSTextAlignment textAlignment; 12 13 // 文字行数 14 @property(nonatomic) NSInteger numberOfLines; 15 16 // 换行模式 17 @property(nonatomic) NSLineBreakMode lineBreakMode; 18 19 // UIFont代表字体,常见创建方法有以下几个: 20 + (UIFont *)systemFontOfSize:(CGFloat)fontSize; // 系统默认字体 21 + (UIFont *)boldSystemFontOfSize:(CGFloat)fontSize; // 粗体 22 + (UIFont *)italicSystemFontOfSize:(CGFloat)fontSize; // 斜体
3.UIImageView
作用:UIImageView极其常用,功能比较专一:显示图片
常见属性:
1 // 显示的图片 2 @property(nonatomic,retain) UIImage *image; 3 4 // 显示的动画图片 5 @property(nonatomic,copy) NSArray *animationImages; 6 7 // 动画图片的持续时间 8 @property(nonatomic) NSTimeInterval animationDuration; 9 10 // 动画的播放次数(默认是0,代表无限播放 11 @property(nonatomic) NSInteger animationRepeatCount; 12 13 - (void)startAnimating; // 开始动画 14 - (void)stopAnimating; // 停止动画 15 - (BOOL)isAnimating; // 是否正在执行动画
mode属性:图片在UIImageView中如何显示:
UIViewContentMode:
但凡取值中包含Scale单词的, 都会对图片进行拉伸(缩放)。 但凡取值中没有出现Scale单词的, 都不会对图片进行拉伸
UIViewContentModeScaleToFill,
会按照UIImageView的宽高比来拉伸图片
直到让整个图片都填充UIImageView为止
因为是按照UIImageView的宽高比来拉伸, 所以图片会变形
但凡取值中包含Aspect单词的, 都会按照图片的宽高比来拉伸 。 因为是按照图片的宽高比来拉伸, 所以图片不会变形
UIViewContentModeScaleAspectFit,
会按照图片的宽高比来拉伸
要求整张图片都必须在UIImageView的范围内
并且宽度和高度其中一个必须和UIImageView一样
居中显示
UIViewContentModeScaleAspectFill,
会按照图片的宽高比来拉伸
要求整张图片必须填充UIImageView
并且图片的宽度或者高度其中一个必须和UIImageView一样
4.UIButton
一般情况下,点击某个控件后,会做出相应反应的都是按钮
作用:按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置
3种状态:
normal(普通状态)
默认情况(Default)
对应的枚举常量:UIControlStateNormal
highlighted(高亮状态)
按钮被按下去的时候(手指还未松开)
对应的枚举常量:UIControlStateHighlighted
disabled(失效状态,不可用状态)
如果enabled属性为NO,就是处于disable状态,代表按钮不可以被点击
对应的枚举常量:UIControlStateDisabled
常见属性:
1 // 设置按钮的文字 2 - (void)setTitle:(NSString *)title forState:(UIControlState)state; 3 4 // 设置按钮的文字颜色 5 - (void)setTitleColor:(UIColor *)color forState:(UIControlState)state; 6 7 // 设置按钮内部的小图片 8 - (void)setImage:(UIImage *)image forState:(UIControlState)state; 9 10 // 设置按钮的背景图片 11 - (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state; 12 13 // 设置按钮的文字字体(需要拿到按钮内部的label来设置) 14 btn.titleLabel.font = [UIFont systemFontOfSize:13]; 15 16 // 获得按钮的文字 17 - (NSString *)titleForState:(UIControlState)state; 18 19 // 获得按钮的文字颜色 20 - (UIColor *)titleColorForState:(UIControlState)state; 21 22 // 获得按钮内部的小图片 23 - (UIImage *)imageForState:(UIControlState)state; 24 25 // 获得按钮的背景图片 26 - (UIImage *)backgroundImageForState:(UIControlState)state;