ios - 在 UITableView 单元格中设置约束,保持 UIButtons 适当间隔

标签 ios xcode uitableview interface-builder

这是我遇到的问题。我已经在界面生成器中完成了一系列关于约束的教程,并且我了解固定。我下面的应用程序使用 UITableView,在 UITableView 单元格中有 4 个 UIButton 和 4 个 UILabel。对于更大的屏幕尺寸,我想像下面那样保持间距。我想我的意思是我希望间距随着屏幕尺寸的增加而动态增加,但图像的尺寸保持不变。如果我尝试将左右 UIButtons 固定到它们各自的容器边缘,这个距离将不会动态增加,并且在中心会有一个很大的差距。我如何设置它才能使布局与较小屏幕尺寸的布局相同?

enter image description here

最佳答案

您可以向父 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中...

enter image description here

蓝色 View 代表(透明)间隔 View 。这是使它们具有可调整大小的相等宽度的设置。您还应该将可见按钮/ ImageView 组合设置为固定宽度。

虽然这个例子说“添加两个约束”,但它实际上添加了四个,都标记为“与 View 宽度相等”——但它似乎做了正确的事情。您还需要将每个 View 之间的间距(“最近邻间距”)设置为零。

关于ios - 在 UITableView 单元格中设置约束,保持 UIButtons 适当间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28549094/

相关文章:

ios - 无法将 NSString 转换为 NSURL

ios - SWIFT 线程 1 : EXC Bad instruction XCODE IOS

ios - 在 UITableViewCells 的 cellForRowAtIndexPath 方法中实现多态性

iphone - 当应用程序重新启动时,如何保留 UITextField 中存储在 plist 中的数据?

ios - NSURLSession 在什么情况下会为其数据返回 nil?

ios - 如何将 UIViewPropertyAnimator 与自动布局一起使用?

iphone - 如何使用 NSString 或 const char *name 动态调用 Objective-C 中的方法?

iOS addChildViewController 与 AdMob [iPhone, Objective-C ]

objective-c - 使按钮暂停并播放声音代码错误

ios - 为什么我的 SearchController 只匹配第一个字符?