代码之家  ›  专栏  ›  技术社区  ›  user7219266

iOS-具有约束优先级和压缩阻力的自动布局问题

  •  0
  • user7219266  · 技术社区  · 7 年前

    我一直在努力提高自己 Auto Layout 以及创造设计。

    我读了很多关于 约束优先级 , 抗压强度 拥抱优先权 而且 内部内容大小 .

    在我的项目中重新创建了几乎所有的xib/故事板文件之后,我一直在努力设计一个简单的自定义 UICollectionViewCell .

    以下是所需的设计:

    enter image description here

    但我似乎无法创建适当的约束来处理所有屏幕分辨率(特别是iPhone 5)。

    以下是我所做的:

    我创建了两个独立的视图,顶部的标题视图和内容视图。

    enter image description here

    关于蓝色和灰色视图:

    现在,为了在不同的屏幕设备上始终保持大致相同的外观,我添加了一个约束 equal height blue view 以及 contentView ( white view ),带常数 1:3 . 这意味着蓝色视图将始终是父白色视图的1/3。

    对于 gray view ,我添加了 equalHeight 约束 蓝色视图 等于 1:2 .

    UILabel和2个UIImage视图:

    现在有趣的部分开始了,我已经设置好了 trailing , top bottom 的约束 UILabel 在蓝色视图中,相同但 leading 对于外部的大图像视图 horizontal constraints UILabel公司 和警报图标 Image View horizontal constraint 2 Images Views .

    现在我知道我有自动布局约束模糊性,因为它不知道压缩或剪裁哪个元素。

    编辑:所以我把UILabel的内容优先权改为1000,现在我有了所有的3个元素,但在iPhone 5上,结果是一场灾难。

    编辑:这是一个包含所有约束的全局图像。在iPhone 5上看起来不太好。

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  1
  •   halfer    7 年前

    由于必须为alertImageView和warningImageView设置宽度/高度约束,以及将标签的内容优先级别水平设置为1000,因此存在约束模糊性

    此外,尽管alertView和warningView不在同一容器中,但也可以在它们之间创建H间距。