//通过xib加载控件的时候调用

- (instancetype)initWithCoder:(NSCoder *)aDecoder

{

if (self = [super initWithCoder:aDecoder]){

self.autoresizingMask = UIViewAutoresizingNone;

}

return self;

}

当父视图缩小的时候,子视图也跟着缩小到一定程度,导致消失,数据也会不显示。

autoResizingMask 是UIView的一个属性,在一些简单的布局中,使用autoResizingMask,可以实现子控件相对于父控件的自动布局。

autoResizingMask 是UIViewAutoresizing 类型的,其定义为:

@property(nonatomic) UIViewAutoresizing autoresizingMask;    // simple resize. default is UIViewAutoresizingNone

UIViewAutoresizing 是一个枚举类型,默认是 UIViewAutoresizingNone,其可以取得值有:

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

各属性解释:

UIViewAutoresizingNone

不会随父视图的改变而改变

UIViewAutoresizingFlexibleLeftMargin

自动调整view与父视图左边距,以保证右边距不变

UIViewAutoresizingFlexibleWidth

自动调整view的宽度,保证左边距和右边距不变

UIViewAutoresizingFlexibleRightMargin

自动调整view与父视图右边距,以保证左边距不变

UIViewAutoresizingFlexibleTopMargin

自动调整view与父视图上边距,以保证下边距不变

UIViewAutoresizingFlexibleHeight

自动调整view的高度,以保证上边距和下边距不变

UIViewAutoresizingFlexibleBottomMargin

自动调整view与父视图的下边距,以保证上边距不变

注意:autoResizingMask 既可以在代码中直接使用,也可以在UIStoryboard中使用。

一个代码中使用autoResizingMask的例子:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];UIViewController *viewController = [[UIViewController alloc] init];self.window.rootViewController = viewController;self.window.backgroundColor = [UIColor whiteColor];UIView *view = [[UIView alloc] initWithFrame:CGRectMake(20,100,200,100)];[view setBackgroundColor:[UIColor grayColor]];[self.window addSubview:view];UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(20,20,50,50)];[button setBackgroundColor:[UIColor whiteColor]];[view addSubview:button];//距离父视图右边距不变//button.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;//距离父视图的左边距不变//button.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;//距离父视图的左右边距不变,button大小会调整//button.autoresizingMask = UIViewAutoresizingFlexibleWidth;//view.frame = CGRectMake(20,100,300,100);//距离父视图的下边距不变//button.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;//距离父视图的上边距不变//button.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin;//距离父视图的上下边距不变,button大小会调整button.autoresizingMask = UIViewAutoresizingFlexibleHeight;view.frame = CGRectMake(20,100,200,200);[self.window makeKeyAndVisible];return YES;
}

另外,autoResizingMask 可以组合使用。例如:

button.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin;

表示的是,子控件相对于父控件的顶部和右侧的距离不变。

有时候视图莫名其妙不显示的的原因:autoresizingMask相关推荐

  1. html中显示桌面图片不显示不出来,电脑桌面图标出问题了怎么办? 电脑桌面图标不能显示是什么原因?...

    可以借助360安全卫士,打开360安全卫士,点击[人工服务]服务选项 点击进入到人工服务界面,找到[电脑故障]--[图标显示异常],并点击该项 电脑开机后,桌面上所有图标都显示不出来该怎么办? 所需工 ...

  2. PDF视图工具栏不显示如何调出来

    我们在打开PDF文件后,为了方便阅读查看经常会使用缩放工具来调整视图,但有时却找不到视图工具栏是怎么回事,要如何才能重新调整出来呢? 出现这种情况的原因大多是工具栏被隐藏,只需要重新打开即可. 我们双 ...

  3. iOS 让视图UIView 单独显示某一侧的边框线

    有时候需要让view显示某一侧的边框线,这时设置layer的border是达不到效果的.在网上查阅资料发现有一个投机取巧的办法,原理是给view的layer再添加一个layer,让这个layer充当边 ...

  4. 列表视图案例3——显示联系人

    列表视图案例3--显示联系人 一.运行效果 二.实现步骤 1.新建安卓应用DisplayContacts 2.准备背景

  5. 列表视图案例2——显示用户列表

    列表视图案例2--显示用户列表 一.运行效果 二.实现步骤

  6. vue父组件引用子组件方法显示undefined问题原因及解决方法

    vue父组件引用子组件方法显示undefined问题原因及解决方法 参考文章: (1)vue父组件引用子组件方法显示undefined问题原因及解决方法 (2)https://www.cnblogs. ...

  7. qt无法显示图片的原因

    qt无法显示图片: 原因: 1.检查图片路径,将图片路径改为全路径 如图片路径单为./jpg时,找不到图片,为全路径时可以找到 2.检查图片格式,不要乱改图片的后缀(如1.jpg改成1.png),否则 ...

  8. 【HTML】关于height值设置和显示不同的原因以及font-size对象为中文和英文的区别

    关于height值设置和显示不同的原因 height: 100px; CSS中把高度设置为100px,但是实际测量发现高度为125px 这个是因为:笔记本默认显示大小为125%,所以100的125%就 ...

  9. 计算机开机右下角无显示桌面,电脑开机后不显示桌面的原因

    电脑开机后不显示桌面的原因 电脑开机后不显示桌面,四种原因分析.最近,有用户反映开机的时候无法显示桌面,这种情况该怎么解决呢?下面小编带来电脑开机后不显示桌面的原因及四种解决方法,一起来看看吧! 原因 ...

最新文章

  1. LINQ之路 2:C# 3.0的语言功能(上)
  2. python秒数变日期_将pandas日期列转换为已用秒数
  3. 刷机提示图像和设备不匹配_安卓5.0升级失败如何解决 安卓5.0刷机失败解决方法介绍【教程】...
  4. 关于对象不能直接访问私有成员的误区(转)
  5. 深度学习笔记(27) 经典卷积网络
  6. 【华为云技术分享】基于ModelArts AI市场算法MobileNet_v2实现花卉分类,支持CPU、GPU、Ascend推理
  7. 深入理解字符,字符集,gbk,utf8
  8. 2007 Office System Video
  9. [转载] Python3接口自动化框架:第三方openpyxl库读取excel之命名元组namedtuple承载数据
  10. python re 使用
  11. SQL2008安装 VS2008安装(VS2010存在的情况下)
  12. 取手机号码php正则表达式,PHP获取手机号码的正则表达式写法
  13. linux下的rpm命令详解,RPM包命令详解
  14. 百度地图中心点偏移-Javascript
  15. matlab怎么还原默认界面???
  16. VPP线程之间报文调度
  17. mysql spj_MySQL查询优化器--非SPJ优化--LIMIT优化
  18. 淘晶驰串口屏入门(五)下拉框 选择文本 动画 视频 外部图片
  19. On the Grasshopper and the Cricket --John Keats 蝈蝈与蟋蟀 济慈
  20. python+itk+读取dicom数据,并保存为nii文件

热门文章

  1. 工业边缘计算技术实用案例分享
  2. 《管道的故事》精髓:用一次性的提桶收入,创建可持续性管道,让管道收入帮你实现财务自由。
  3. 操作系统导论-进程概述
  4. 测绘——CAD2008+CASS9.1批零插入图块不成功及打开低版本dwg报内部错误的解决方法
  5. 【Android 进阶】图片加载框架之Glide
  6. CCS安装编译器的方法
  7. html5 麦克风事件,HTML5 Audio 麦克风 声音触发亮光
  8. 招行U盾农行页面浏览器无法登录问题
  9. vue实现签到功能,带动画需引入animate,有接口
  10. Data,DB,DBMS,DBS,DBA