zoukankan      html  css  js  c++  java
  • 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个子控件 ",self.view.subviews.count);
    结果为2 button2算做是绿色控件的的子控件.
     
    3.控件的id标识父控件可通过tag来区分,可在右侧赋值。
    @property(nonatomic,readonly,copy) NSArray *subviews;
     
    tag的使用:
    - (IBAction)click:(UIButton *)but
    {
        NSLog(@"按钮被点击了
    ");
        if(but.tag ==12)
        {
             NSLog(@"上面的按钮被点击了
    ");
        }
        else if(but.tag == 31)
        {
            NSLog(@"下面的按钮被点击了
    ");
        }
        NSLog(@"%ld
    ",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的xy一般为0)

    @property(nonatomic) CGRect bounds;

    五. UIView的常见方法

    1.添加一个子控件view

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

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

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

  • 相关阅读:
    英语中的一个月几天的表示法
    深圳梧桐山游记
    linux中创建文件和文件夹
    linux中~和/的区别
    linux中的--和-的区别
    linux中vi和vim的区别
    基本数据类型大小和范围
    洛谷 [AHOI2001]质数和分解
    codevs 1115 开心的金明--01背包
    codevs 1080 线段树练习--用树状数组做的
  • 原文地址:https://www.cnblogs.com/jianghg/p/4476718.html
Copyright © 2011-2022 走看看