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
  • 相关阅读:
    【iBoard电子学堂开发板例程】【12个 stm32 例程发布】
    【iCore双核心组合是开发板例程】【12个 verilog 中级实验例程发布】
    【新产品发布】【iHMI43 智能液晶模块 2013 版】
    【新产品发布】【EVC8001 磁耦隔离式 USB 转 RS-485】
    【iHMI43真彩液晶模块】发布新版 DEMO 软件包,版本号为 0.14
    【新产品发布】【iCore2 ARM / FPGA 双核心板】
    急性淋巴瘤化疗术后高热不退案
    产后便秘案
    药疹治案
    胃癌化疗后急救案
  • 原文地址:https://www.cnblogs.com/mcj-coding/p/3567729.html
Copyright © 2011-2022 走看看