zoukankan      html  css  js  c++  java
  • UIView常用属性的注意点:

    UIView常用属性的注意点:

    @property(nonatomic) CGRect frame;

    // frame 属性注意点:
    // 1> frame 表示: 使用控件父容器的坐标系统来描述控件的位置和大小。
    // 2> frame 使用的是点坐标系
    // 3.1> 修改了控件的 frame 之后, 控件会自动重新显示(但是不调用 drawRect:方法);
    // 3.2> 如果希望修改了控件的 frame, 重新显示控件的时候调用drawRect:方法, 那么需要设置控件的contentMode属性值为UIViewContentModeRedraw
    // 4> 当修改了控件的 transform属性后, 不要再读取(或修改)frame; 如果要修改控件的位置和大小, 请使用 center 和 bounds 属性

      

    @property(nonatomic) CGRect   bounds;

    / 1> bounds 表示: 使用控件自身的坐标系统来描述控件的位置和大小。(主要是为了让当前控件的子控件方便布局, 当前控件的子控件以这个坐标系为准来进行布局)
    // 1.1> 简而言之: bounds.x 和 bounds.y 决定了UIView的subView的原点坐标。
    // 2> bounds 使用的是点坐标系
    // 3> 通过 bounds 修改大小, 控件会表现出相对于中心点的大小变化
    // 4> bounds 默认的 x、y 值是(0, 0), 这个值是可以修改的, 修改了这个值不会影响控件本身的的显示, 而是影响该控件内部子控件的显示(因为改变了当前控件自身的坐标系, 所以该控件的所有子控件的相对位置就发生了变化)
    // 5> bounds 的 size 是和 frame 的 size 相关联的, 修改了一个会影响另外一个

      

    @property(nonatomic) CGPoint center;

    // 1> center 属性也是用点坐标来描述的
    // 2> center 一般指的是当前控件的中心点(在父容器坐标系统中的中心点)
    // 3> 修改 center 属性也会影响到 frame 属性
    // 4.1> 当一个控件还没有添加到任何父控件中的时候, 此时控件的center就是相对于控件自身左上角的偏移。
    // 4.2> 当把一个控件添加到父容器中后, 此时控件的center就变成了相对于父控件的左上角的距离

     

    @property(nullable, nonatomic,readonly) UIView *superview;//父控件

    @property(nonatomic,readonly,copy) NSArray<__kindof UIView *> *subviews;//子控件集合数组

    @property(nonatomic)NSInteger tag;//tag值,也可以叫识别标识

    // 文本框的 text 属性

    @property(nullable, nonatomic,copy)   NSString *text;//text属性

    // 总结:
    // 通过控件的frame可以修改控件的【位置(x, y)】 和 【大小(width, height)】
    // 通过控件的center只能修改控件的【位置(x, y)】

    // 通过控件的bounds只能修改控件的【大小(width, height)】

     

    注意:

    遇到一个类中有一个属性是”结构体”类型时,那么不可以直接通过类的对象

    介绍控件常见的方法
    - (void)removeFromSuperview; 移除

    - (void)addSubview:(UIView *)view; 添加

    - (nullable __kindof UIView *)viewWithTag:(NSInteger)tag; 用tag值来找控件 //nullable __kindof 表示返回值不能为空,后面跟UIView *,表示返回值必须为一个UIView *

  • 相关阅读:
    人工智能 tensorflow框架-->简介及安装01
    【亲测】自动构建多个指定的class并发执行:Jenkins+Maven+Testng框架
    【亲测】Appium测试Android混合应用时,第二次切换到WebView失败
    appium_v1.4.16版本自动化适配android7.0系统
    python之拆包与装包
    python3之线程
    python3之进程
    python3之tcp
    python3之udp
    python3面向对象(4)之__new__方法和__init__方法
  • 原文地址:https://www.cnblogs.com/anRanTimes/p/5131477.html
Copyright © 2011-2022 走看看