【发布时间】:2013-09-22 15:17:15
【问题描述】:
我有一个原型 tableview 单元格,在 tableview 单元格内有一个自定义视图。包含 tableview 的视图控制器只会以横向模式显示。目标是让表格视图单元格内的 UIView 根据外形尺寸调整其宽度。因此,例如,左右可能有 20pt 的间距,然后 uiview 会调整其宽度以填充其余空间。我希望用故事板和自动布局来做到这一点。
在 3.5 英寸的外形尺寸中,它看起来像这样(这也是它在 4 英寸模式下的样子)
在 4 英寸外形尺寸中看起来像这样(宽度没有自动调整大小)
我知道这里的“自动布局”是合法的,因为 4 英寸外形尺寸的水平空间也是 >20。但问题的核心是......当屏幕的宽度使用故事板/自动布局/约束发生变化时,如何让子视图自动调整其宽度?
【问题讨论】:
-
你的横向间距应该是=20而不是>=20,那么它将在任何尺寸的屏幕或外形尺寸上插入20个点。
-
那行不通。如果我将它们设置为等于 20,只要我按下 xcode 中的调整尺寸大小按钮,它们就会变得一团糟。例如,如果我在 4 英寸外形尺寸中将它们设置为等于 20,然后按下 3.5 英寸尺寸按钮......视图保持相同尺寸(太宽)并且 20 英寸间隔变成 -68 间隔
-
我认为这可能是 Xcode 中的一个错误。我想我记得一些关于添加到单元格的约束而不是单元格的内容视图(它应该在哪里)。当你在模拟器中测试时,你会得到同样的错误行为吗?
-
如果您在控制器的主视图中而不是在表格视图单元格中使用视图执行相同的操作(到边缘的间距为 20 点),它可以正常工作。我想我已经通过在代码中将视图和约束添加到单元格的 contentView 来解决这样的问题。
-
我认为你可能是对的。我会在代码中做更多的工作并让你知道。
标签: ios objective-c uitableview constraints autolayout