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、用户:屏幕是由无数个像素组成的,...