这是我遇到的问题。我已经在界面生成器中完成了一系列关于约束的教程,并且我了解固定。我下面的应用程序使用 UITableView,在 UITableView 单元格中有 4 个 UIButton 和 4 个 UILabel。对于更大的屏幕尺寸,我想像下面那样保持间距。我想我的意思是我希望间距随着屏幕尺寸的增加而动态增加,但图像的尺寸保持不变。如果我尝试将左右 UIButtons 固定到它们各自的容器边缘,这个距离将不会动态增加,并且在中心会有一个很大的差距。我如何设置它才能使布局与较小屏幕尺寸的布局相同?
最佳答案
您可以向父 View 添加一些透明 View ,并将它们用作间隔物。一开始我觉得这很奇怪,但我注意到 Apple 推荐它(它甚至作为一个建议出现在他们信息量惊人的 NSLayout 调试消息中)
[self.view addConstraints:
[NSLayoutConstraint constraintsWithVisualFormat:
@"H:|[spacer1][view1]\
[spacer2(==spacer1)][view2]\
[spacer3(==spacer1)][view3]\
[spacer4(==spacer1)][view4]\
[spacer5(==spacer1)]|"
options:NSLayoutFormatAlignAllTop
metrics:0
views:viewsDictionary]];
如您所见,诀窍是将每个垫片的宽度设置为等于第一个垫片的宽度。然后您将获得均匀分布的可见 View 。在您的情况下,您会将每个按钮/图像组合添加到容器 View (view1 ... view4)。
在 Storyboard中...
蓝色 View 代表(透明)间隔 View 。这是使它们具有可调整大小的相等宽度的设置。您还应该将可见按钮/ ImageView 组合设置为固定宽度。
虽然这个例子说“添加两个约束”,但它实际上添加了四个,都标记为“与 View 宽度相等”——但它似乎做了正确的事情。您还需要将每个 View 之间的间距(“最近邻间距”)设置为零。
关于ios - 在 UITableView 单元格中设置约束,保持 UIButtons 适当间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28549094/