zoukankan      html  css  js  c++  java
  • ios的AutoresizingMask【转】

    在 UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值(如下),属性的意思就是自动调整子控件与父控件中间的位置,宽高。

    enum {
       UIViewAutoresizingNone                 = 0,
       UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,
       UIViewAutoresizingFlexibleWidth        = 1 << 1,
       UIViewAutoresizingFlexibleRightMargin  = 1 << 2,
       UIViewAutoresizingFlexibleTopMargin    = 1 << 3,
       UIViewAutoresizingFlexibleHeight       = 1 << 4,
       UIViewAutoresizingFlexibleBottomMargin = 1 << 5
    };
    typedef NSUInteger UIViewAutoresizing;

    分别解释以上意思。

    UIViewAutoresizingNone就是不自动调整。

    UIViewAutoresizingFlexibleLeftMargin就是自动调整与superView左边的距离,也就是说,与superView右边的距离不变。

    UIViewAutoresizingFlexibleRightMargin就是自动调整与superView的右边距离,也就是说,与superView左边的距离不变。

    UIViewAutoresizingFlexibleTopMargin 

    UIViewAutoresizingFlexibleBottomMargin

    UIViewAutoresizingFlexibleWidth

    UIViewAutoresizingFlexibleHeight

    以上就不多解释了,参照上面的。

    也可以多个枚举同时设置。如下:

    subView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin  |UIViewAutoresizingFlexibleRightMargin;

    如果有多个,就用“|”关联。

    还有一个属性就是autoresizesSubviews,此属性的意思就是,是否可以让其subviews自动进行调整,默认状态是YES,就是允许,如果设置成NO,那么subView的autoresizingMask属性失效。

    关于ios的控件的AutoresizingMask属性  

    setAutoresizingMask控件的自适应 

        UIViewAutoresizingNone                 = 0,

        UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,

        UIViewAutoresizingFlexibleWidth        = 1 << 1,

        UIViewAutoresizingFlexibleRightMargin  = 1 << 2,

        UIViewAutoresizingFlexibleTopMargin    = 1 << 3,

        UIViewAutoresizingFlexibleHeight       = 1 << 4,

        UIViewAutoresizingFlexibleBottomMargin = 1 << 5

    UIViewAutoresizingNone

    UILabel*    label = [[UILabel alloc] initWithFrame:CGRectMake(50, 100, 200, 40)];

    [label setAutoresizingMask: UIViewAutoresizingNone];  控件相对于俯视图坐标值不变   

    CGRectMake(50, 100, 200, 40)
     
    UIViewAutoresizingFlexibleWidth:控件的宽度随着父视图的宽度按比例改变    例如
     
    label宽度为 100     屏幕的宽度为320          当屏幕宽度为480时      label宽度  变为  100*480/320
    同理  
    UIViewAutoresizingFlexibleHeight相同
     
     
    UIViewAutoresizingFlexibleLeftMargin  到屏幕左边的距离随着父视图的宽度按比例改变  
     
    例如    
    CGRectMake(50, 100, 200, 40)];   
    50     屏幕的宽度为320          当屏幕宽度为480时      label宽度  变为  50*480/320
    控件变为    
    CGRectMake(75, 100, 200, 40)];  
     
    UIViewAutoresizingFlexibleRightMargin
    UIViewAutoresizingFlexibleTopMargin
    UIViewAutoresizingFlexibleBottomMargin
    花开花谢春不管,水暖水寒鱼自知.
  • 相关阅读:
    Android见招拆招五:XML匹配问题、XML资源引用的必要性
    Android见招拆招四:Manifest.xml内容神秘还原
    Android学习笔记三:Intent实现页面跳转
    Android学习笔记二:(布局)Linear Layout、Layout weight测试
    Android见招拆招三:Eclipse软件误报
    Android学习笔记一:(布局)fill_parent、wrap_content、match_parent实例测试
    文件读写(笔记)
    常用的异常
    面向过程、函数式、面向对象
    time&datetime&random模块
  • 原文地址:https://www.cnblogs.com/taintain1984/p/3238450.html
Copyright © 2011-2022 走看看