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;

 

 
posted @ 2015-08-09 21:36  iyxooo  阅读(290)  评论(0编辑  收藏  举报