zoukankan      html  css  js  c++  java
  • IOS

    在 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
  • 相关阅读:
    hdu5628 Clarke and math
    LOJ#2452. 「POI2010」反对称 Antisymmetry
    LOJ#2444. 「NOI2011」阿狸的打字机
    BZOJ2795: [Poi2012]A Horrible Poem
    LOJ#2427. 「POI2010」珍珠项链 Beads
    云主机文件系统readonly处理案例
    兼容性测试中如何切换和管理多个JDK版本
    Promise之你看得懂的Promise
    一次MySQL线上慢查询分析及索引使用
    考拉消息中心消息盒子处理重构(策略模式)
  • 原文地址:https://www.cnblogs.com/mcj-coding/p/3567729.html
Copyright © 2011-2022 走看看