我的任务是为不同的屏幕分辨率保留单元格中元素的大小和位置。
我做到了:
结果,字体大小在不同的设备上改变。但是仍然存在一些问题:
(我想通过Interface Builder进行所有操作)
答案 0 :(得分:0)
您可以利用等高和等宽约束。
按照以下步骤操作,以使iPhone 8和iPhone 4s上的UILabel间距相同。这将帮助您使其成比例。
1)要实现此目的,只需选择标签(红色),标签(绿色)和超级视图(我认为您是UICollectionView
的单元格)
2)我们对保持高度成比例感兴趣。 即红色标签(80%)和绿色标签(20%)
当前,所有高度都等于超级视图的高度,即RedLabel和Greenlabel的高度等于超级视图的100%。
但是目标是使红色和绿色标签分别达到80%和20%。
因此选择红色标签高度约束。在这里,您设置了约束条件,即“红色标签的高度应为超级视图高度的80%”。
与“绿色标签”类似,将“绿色标签的高度设置为超级视图的高度的20%”。
红色标签
绿色标签
3)现在,完成x和y轴位置约束,这很简单
a)红色标签前导=超级视图的前导
b)红色标签结尾=超级视图的结尾
c)红色标签顶部=超级视图的顶部边缘
d)红色标签底部= 不需要(因为它具有所有必要的约束条件来证明其位置是正确的,即height = 0.8 * superview,并且它是顶部对齐的,例如:super view height是100,保持该视图的顶部与height = 80对齐)
e)绿色标签行距=红色标签行距(您已经在“ a”点中对此进行了设置,无需再次设置绿色标签的约束)
f)绿色标签结尾=红色标签开头(您已经在点“ b”中设置了此标签,无需再次为绿色标签设置约束)
g)绿色标签底部=超级视图底部
h)绿色标签top = 不是必需的(因为它具有所有必要的约束条件来证明其位置是正确的,即height = 0.2 * superview,并且其底部对齐,例如:super view height是100,保持此视图的底部与height = 20对齐)
这是iPhone 8和4s的最终约束列表和情节提要预览。