在 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

最新文章

  1. 访问者模式(visitorpattern)
  2. Could not find or load main class org.gradle.wrapper.GradleWrapperMain解决办法
  3. java网络编程2
  4. Javascript的匿名函数与自执行
  5. UVa 12299 RMQ with Shifts(移位RMQ)
  6. 利用Apache Ant编译Hadoop2.6.0-eclipse-plugin
  7. SDL2.0的SDL_Event事件处理
  8. 炼数成金hadoop视频干货01
  9. HashTable、HashMap、LinkedHashMap、TreeMap的比较
  10. android如何建立数据库。(如何重写SQLiteOpenHelper)
  11. PAT1001
  12. 201521123107 《Java程序设计》第5周学习总结
  13. YUI3组件框架之plugin
  14. 老毛桃pe安装系统
  15. git clone 指定分支
  16. oracle 远程连接不到dba用户
  17. 匈牙利算法--java
  18. Rocketmq源码导入eclipse时报错的解决方法
  19. 获取多个checkbox的选中值
  20. java笔记--代码实现汉诺塔移动过程和移动次数

热门文章

  1. Windows API 常用函数
  2. 根据map键值对,生成update与select语句,单条执行语句
  3. resttemplate 文件上传 上传文件
  4. github fork 同步
  5. 【转】Memcached之缓存雪崩,缓存穿透,缓存预热,缓存算法
  6. Ajax+Jsp+servlet+json技术的使用
  7. SNMP MIB库
  8. Asp.net webapi Owin Get request form data
  9. CI框架 -- 核心文件 之 Exceptions.php
  10. Linux 系统安装配置PHP服务(源码安装)