IOS开发-UI控件的常见属性
一.概述
程序运行过程中,我们经常要改变控件的显示状态,如下载进度、播放器的播放进度、图片的放大缩小等,那么如何修改呢?
二. 修改UI控件的状态
每个UI控件都是一个对象,要修改这个对象的状态就是要修改这个对象的属性,比如,修改UILabel显示的文字就修改UILabel的text属性
@interface UILabel : UIView <NSCoding> @property(nonatomic,copy) NSString *text; // default is nil @end
修改按钮的背景图片就修改UIButton的 imageView 属性
1 @interface UIButton : UIControl <NSCoding> 2 @property(nonatomic,readonly,retain) UIImageView *imageView NS_AVAILABLE_IOS(3_0); 3 ... 4 @end
由此可见,众多的UI控件都有一些自己的特定属性,但是有一些属性都是每个UI控件都具备的比如位置和尺寸,父控件子控件等所以将公共的属性提取到UIView中,所有的控件也都继承于UIView.
三. UIKit坐标系
三.UIView的常见属性
1.获取自己的父控件对象.
@property(nonatomic,readonly) UIView *superview;
@property(nonatomic,readonly,copy) NSArray *subviews;
@property(nonatomic,readonly,copy) NSArray *subviews;
- (IBAction)click:(UIButton *)but { NSLog(@"按钮被点击了\n"); if(but.tag ==12) { NSLog(@"上面的按钮被点击了\n"); } else if(but.tag == 31) { NSLog(@"下面的按钮被点击了\n"); } NSLog(@"%ld\n",but.tag); }
4.控件的形变属性(可以设置旋转角度、比例缩放等属性)
@property(nonatomic) CGAffineTransform transform;
// 创建一个x,y方向的伸缩比例为sx和sy的形变值 CGAffineTransform CGAffineTransformMakeScale(CGFloat sx, CGFloat sy) // 在原形变值t的基础上再次进行x,y方向的伸缩比例为sx和sy的形变 CGAffineTransform CGAffineTransformScale(CGAffineTransform t, CGFloat sx, CGFloat sy) // 创建旋转角度为angle的形变值 CGAffineTransformMakeRotation(CGFloat angle) // 在原形变值t的基础上在进行angle角度的旋转 CGAffineTransformRotate(CGAffineTransform t, CGFloat angle);
清空之前多有的形变属性
_btn.transform = CGAffineTransformIdentity;
5.控件的位置和尺寸(以父控件的左上角为坐标原点),自己左上角的坐标
@property(nonatomic) CGRect frame;
6.控件中点的位置(以父控件的左上角为坐标原点)
@property(nonatomic) CGPoint center;
7.控件所在矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x\y一般为0)
@property(nonatomic) CGRect bounds;
五. UIView的常见方法
1.添加一个子控件view
3.根据一个tag标识找出对应的控件(一般都是子控件)
- (UIView *)viewWithTag:(NSInteger)tag;
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。