UIVIew 常见属性
- frame 位置和尺寸(以父控件的左上角为原点(0,0))
CGRect - center 中点 (以父控件的左上角为原点(0,0))
- bounds 位置和尺寸(以自己的左上角为原点 (0,0))
- transform 形变属性(缩放,旋转)
- backgroundColor 背景颜色
- tag 标识(父控件可以根据这个标识找到对应的子控件,同一个父控件中的子控件不要一样)
- hidden 设置是否要隐藏
- alpha 透明度(0~1);
- opaque 不透明度(0~1);
- userInteractionEnabled 能否跟用户进行交互(YES 能交互)
- superView 父控件
- subviews 子控件
- contentMode 内容显示的模式 拉伸自适应
[view viewWithTag:10];
[
btn1 9
btn2 10
imageView 2 10
]
UIView常见方法
addSubview
添加子控件,被添加到最上面(subviews中的最后面)removeFromSuperview
从父控件中移除viewWithTag:
父控件可以根据这个tag 标识找到对应的控件(遍历所有的子控件)insertSubview:atIndex:
添加子控件到指定的位置利用两个类方法来执行动画的两个方法
+(void) beginAnimations:(NSString )animationID context:(void )context;
/..需要执行动画的代码..**/
+(void) commitAnimations;利用blok 执行动画
/*
duration 动画持续时间
animations 存放需林执行动画的代码
completion 存放动画完毕后需要执行的操作代码
*/
+(void) animateWithDuration:(NSTimeInterval) duration animations:(void (^)(void))animations completion:(void(^)) (BOOL finished) completion
UIControl
只要继承UIControl ,就能简单地处理事件(点击事件,值改变事件)
继承了UIControl的子类
UIButton.UISlider.UISwitch .UIDatePicker 等等-
当需要监听了一个子控件时间的时候,解决步骤:
- 先看它是否继承自UIControl
- 再看它内部是否有delegate属性
常用属性
- enabled 能否处理时间
- contentVerticalAlignment 内容在垂直方向上的排布方式
- contentHorizontalAlignment 内容在水平方向上的排布方式
- 常用方法
添加监听器
/*
target 监听器对象
action 事件触发时所调用的方法,调用target的方法
*/
-(void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;删除监听器
//删除监听器后,事件触发时就不会再通知监听器了,也就不会再调用target的action方法了
-(void roemoveTarget:(id)target action:](SEL)action forControlEvents:](UIControlEvents) controlEvents);获得所有的监听器对象
-(NSSet *) allTargets;
UILabel
- 常见属性
- text 所显示的文本内容
- textColor 文本颜色
- font 字体
- shadowColor 文字的阴影颜色
- shadowOffset 阴影的偏差距离(width水平方向的偏差距离,height垂直方向的念头距离,正数下边)
- textAlignment 设置文字的排布方法(偏左,偏右,居中).
- numberOfLines 允许文字最多有几行数(如果为0,自动换行).
UIButton
//.UISlider .UISwitch .UIDatePicker等等
- 常见属性
- titleLabel 获取内部的UILabel 对象
- imageView 获取内部的UIImageView对象
- 常见方法
设置内部UILabel 显示的文本内容
//设置按钮文本的时候不能 btn .titleLabel.text = @"4324324";
-(void)setTitle:(NSString *)title forState:(UIControlState)state; // default is nil. title is assumed to be single line设置内部UILabel的文字颜色
-(void)setTitleColor:(UIColor *)color forState:(UIControlState)state UI_APPEARANCE_SELECTOR; // default if nil. use opaque white设置内部UILabel 的文字阴影颜色
-(void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state UI_APPEARANCE_SELECTOR; // default is nil. use 50% black设置内部UIImageView的图片
-(void)setImage:(UIImage *)image forState:(UIControlState)state; // default is nil. should be same size if different for different states设置内部UIImageView的图片
-(void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state UI_APPEARANCE_SELECTOR; // default is nil下面两个方法需要交给子类去重写
//返回没物控部UILabel的frame (位置和尺寸)
-(CGRect)titleRectForContentRect:(CGRect)contentRect;
//返回内部UIImage的尺寸和位置
-(CGRect)imageRectForContentRect:(CGRect) contentRect;下面这些方法可以获取不同状态下的一些属性
-(NSString *)titleForState:(UIControlState)state; // these getters only take a single state value
-(UIColor *)titleColorForState:(UIControlState)state;
-(UIColor *)titleShadowColorForState:(UIControlState)state;
-(UIImage *)imageForState:(UIControlState)state;
-(UIImage *)backgroundImageForState:(UIControlState)state;
-(NSAttributedString *)attributedTitleForState:(UIControlState)state NS_AVAILABLE_IOS(6_0);