【发布时间】:2018-07-08 00:18:34
【问题描述】:
我一直在努力提高自己关于 Auto Layout 和创造设计的能力。
我已经阅读了很多关于约束优先级、抗压和拥抱优先级以及内在内容大小的内容.
在我的项目中重新创建了几乎所有 xib/storyboard 文件后,我一直在为自定义 UICollectionViewCell 的简单设计而苦苦挣扎。
这是所需的设计:
但我似乎无法创建适当的约束来处理所有屏幕分辨率(特别是 iPhone 5)。
这是我所做的:
我创建了 2 个单独的视图,顶部的标题视图和内容视图。
关于蓝色和灰色视图:
现在为了在不同的屏幕设备上始终具有大致相同的外观,我在 blue view 和 contentView (white view) 之间添加了约束 equal height,并使用常量 1:3 .这意味着蓝色视图将始终是父白色视图的 1/3。
对于gray view,我添加了一个equalHeight 约束,其中blue view 等于1:2。
UILabel 和 2 个 UIImage 视图:
现在有趣的部分开始了,我已经为蓝色视图中的UILabel 设置了trailing、top 和bottom 约束,对于外部的大ImageView 设置相同但leading,带有@ 987654342@ 在UILabel 和警报图标Image View 之间,horizontal constraint 在2 Images Views 之间。
现在我知道我有自动布局约束歧义,因为它不知道要压缩或剪辑哪个元素。
编辑:所以我将 UILabel 的内容拥抱优先级更改为 1000,现在我拥有了所有 3 个元素,但在 iPhone 5 上,结果是一场灾难。
编辑:这是一个包含所有约束的全局图像。在 iPhone 5 上看起来不太好。
【问题讨论】:
-
你能分享你的代码吗?
-
始终包含代码,而不仅仅是您对代码的假设。只有代码 100% 正确地描述了情况
-
我添加了一个编辑
标签: ios autolayout interface-builder constraints nslayoutconstraint