Auto Layout

来看看Auto Layout。

我们都知道的,Auto Layout可以描述视图与其内容相互之间的关系,也可以描述视图视图及其内容与父视图之间的关系。
那,Auto Layout 的工作原理是通过创建屏幕上的对象之间的关系来实现布局。
使用Auto Layout ,可以描述一些约束,用来指定视图之间的关系;也可以设置一些视图属性,用来描述视图与其内容之间的关系。
1>内容驱动的布局
Auto Layout是内容驱动的。它在布局时会考虑视图的内容
2>优先级规则
Auto Layout 通过优先级规则权衡各布局选项的重要性,并对优先级作适当调整,使之适合有挑战性的边界条件和特殊情况。当规则发生冲突时,系统根据优先级排序选择最重要的布局质量来保护。
3>检查和模块化
Auto Layout可以有效地进行集中处理和检查。只有当使用代码创建布局时才能利用这一优势。
使用代码创建布局,可以将规则划分为一些通用方法(如loadView和updateViewConstraints)并自由地对这些方法进行注释。
将约束进行模块化是一件很简单的事,当创建了将一个视图相对于其父视图居中的例程后,就可以无限地重用该例程。

视图丢失?
1、欠约束导致丢失视图
欠约束的视图没有为Auto Layout提供构建视图所需的足够信息,因此它通常默认大小为0.
2、规则不一致导致丢失视图
两个视图相互之间的约束规则不一致时,这种规则既可以实现,也无歧义,这是因为视图的宽度为0时,可满足。所以丢失。

追踪丢失的视图:
在预期他们出现之后检查他们的几何形状(例如使用viewDidAppear:和awakeFromNib),可以添加NSAssert语句来描述他们的预期大小和位置。

有歧义的布局
在开发过程中,可以调用hasAmbiguousLayout来测试视图的约束是否充分。如果某个视图可能显示另一种不同的框架,则返回YES;如果某个视图的约束已充分指定,则返回NO.这些结果是每个视图所特有的。应该为你的视图层次结构中的每个视图单独地测试布局。

内在内容大小
使用Auto Layout时,视图的内容在其布局中的重要性与约束不相上下。视图内容的大小通过每个视图的intrinsicContentSize属性表达,它描述了在数据未经压缩或裁剪的情况下表达视图全部内容所需的最小空间。该属性源于每个视图所呈现内容的自然属性。
通过视图的内在内容大小,Auto Layout将视图的框架尽可能地与其自然内容相匹配。

压缩阻力
压缩阻力是指视图保护其内容的方式,压缩阻力高的视图能够抵抗收缩,不允许内容被剪切。setContentCompressionResistancePriority

内容吸附
内容吸附优先级是防止在视图与其核心内容间作填充或直接伸展其核心内容.
setContentHuggingPriority

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,340评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,762评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,329评论 0 329
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,678评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,583评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,995评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,493评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,145评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,293评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,250评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,267评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,973评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,556评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,648评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,873评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,257评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,809评论 2 339

推荐阅读更多精彩内容