- autoresizingMask无论是在storyboard中实现还是用代码实现,本质上来说就是 - 六条线。
- 在storyboard中使用autoresizingMask需要将Autolayout禁用掉。 
- 
如图:   图中共有 六条线。如果 上下左右的线中的某一条选中,则表示距离父控件的边界的距离不变。比如图中选中 左和上的线,表示蓝色view距离self.view的左边界和上边界的距离不变。如果同时选中 上下左右的线,那么行为会和选中上左的线是一样的,也就是默认的行为。如果想让子控件尺寸跟随父控件尺寸改变而改变,那么需要用到 内部的两条线。内部的线表示允许控件在水平和垂直方向上可拉伸。如果不选中内部的线,说明是不希望控件可拉伸的,也就是固定大小的。
- 也就是说,周围的线选中表示 - 固定距离,内部的线选中表示- 允许拉伸。
- 
如果用代码设置autoresizingMask,会发现一个view的autoresizingMask属性是一个枚举: UIViewAutoresizingNone = 0, UIViewAutoresizingFlexibleLeftMargin = 1 << 0, UIViewAutoresizingFlexibleWidth = 1 << 1, UIViewAutoresizingFlexibleRightMargin = 1 << 2, UIViewAutoresizingFlexibleTopMargin = 1 << 3, UIViewAutoresizingFlexibleHeight = 1 << 4, UIViewAutoresizingFlexibleBottomMargin = 1 << 5除了第一个是None,剩下的六个就对应storyboard中的六条线。 
- 
注意上面 UIViewAutoresizingFlexibleWidth UIViewAutoresizingFlexibleHeight这是正好和storyboard中设置autoresizingMask中内部的两天线是一致的:可拉伸的宽度和高度。 剩下的需要注意一下: UIViewAutoresizingFlexibleLeftMargin UIViewAutoresizingFlexibleRightMargin UIViewAutoresizingFlexibleTopMargin UIViewAutoresizingFlexibleBottomMargin在storyboard中,如果 选中周围的线,表示距离固定。比如我选中了左边的线,那么表示我想要左边的距离固定,所以在代码中我应该选择UIViewAutoresizingFlexibleRightMargin,即表示右边的距离不固定,那么则默认左边的距离固定。
- autoresizingMask的缺点是只能保证 - 父控件和子控件间的关系,无法保证- 同级控件间的关系,也就是说有些需求,autoresizingMask是无法实现的。更多的精力应该放在- Autolayout上。
Autoresizing
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 前言 iPhone自诞生以来,随着其屏幕尺寸不断的多样化,屏幕适配的技术一直在发展更新。目前,iOS系统版本已经更...
- autoResizing autoLayout和sizeClass 1. autoResizing autores...
- 开发中:要进行适配 什么是适配: 适应、兼容不同的情况 常见的适配: 1.系统适配:针对不同版本的操作系统进行适配...
- 使用Autoresizing的几种方式 a、通过storyboard中的故事板 b、使用代码 Autoresizi...
- 如何适配? 不同版本适配 不同屏幕尺寸适配,不同屏幕方向(横竖屏) 点与像素 1、用户:屏幕是由无数个像素组成的,...