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坐标系

在UIKit中,坐标系的原点(0,0)在左上角,x值向右正向延伸,y值向下正向延伸。

 技术分享

三.UIView的常见属性

1.获取自己的父控件对象.

@property(nonatomic,readonly) UIView      *superview;
 
 2.获取自己的子控件,子控件以数组形式存放,第一个添加的就是数组0.
@property(nonatomic,readonly,copy) NSArray *subviews;
 

技术分享

NSLog(@"%ld个子控件\n",self.view.subviews.count);
结果为2 button2算做是绿色控件的的子控件.
 
3.控件的id\标识父控件可通过tag来区分,可在右侧赋值。
@property(nonatomic,readonly,copy) NSArray *subviews;
 
技术分享
tag的使用:
- (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;  
1》 表示控件的形变状态(旋转角度、缩放比例等)
2》 创建CGAffineTransform类型数据的函数
此属性需要CGAffineTransform类型数据,创建此类型数据的常用函数
// 创建一个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

- (void)addSubview:(UIView *)view;
 
2. 从父控件中移除
- (void)removeFromSuperview;

3.根据一个tag标识找出对应的控件(一般都是子控件)

- (UIView *)viewWithTag:(NSInteger)tag;

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。