我的任务是保留单元格内元素的大小和位置,以适应不同的屏幕分辨率。
我做了:
结果,字体大小在不同设备上发生变化。但仍有一些问题:
(我想通过Interface Builder做一切)
您可以利用相同的高度和相等的宽度约束。
按照以下步骤在iPhone 8和iPhone 4s上使UILabel间距相同。这将帮助您使其成比例。
1)要实现这一点,只需选择,你的标签(红色),标签(绿色)和超级视图(我认为你是它的UICollectionView
单元格)
2)我们感兴趣的是保持高度成比例。即红色标签(80%)和绿色标签(20%)
目前,所有高度都等于超视图高度,即红色标签和绿色标签的高度等于超视图的100%。
但目标是分别使红色和绿色标签分别为80%和20%。
因此,选择红色标签高度约束。在这里设置约束,其中说“红色标签的高度应该是超视图高度的80%”。
类似地,对于绿色标签,设置“绿色标签的高度,使其超视图高度为20%”。
红标
绿色标签
3)现在完成x轴和y轴位置约束,这将是直接的
a)红色标签领先=超级视图的前沿
b)红色标签尾随=超视图的后沿
c)红色标签顶部=超视图的顶部边缘
d)红色标签底部=不需要(因为它具有所有必需的约束来证明它的位置,即高度= 0.8 *超视图并且它是顶部对齐的,例如:超视图高度为100,保持此视图顶部与高度对齐= 80)
e)绿色标签前导=红色标签前导(您已将此设置为“a”,无需再为绿色标签设置约束)
f)绿色标签尾随=红色标签前导(您已将此设置为“b”,无需再次为绿色标签设置约束)
g)绿色标签底部=超视图的底部
h)绿色标签顶部=不需要(因为它具有所有必需的约束来证明它的位置,即高度= 0.2 *超视图并且它是底部对齐的,例如:超视图高度为100,保持此视图底部与高度对齐= 20)
这是iPhone 8和4s的最终约束列表和故事板预览。