0

在我的应用程序中,我在 UITableViewCell 中有一个 UITextField,目前我让它占据了单元格的整个宽度,因为显然这将是它可以达到的最大值。

无论如何,我知道有使用 autoresizingMask 的选项,例如: AutoReszingMaskFlexibleWidth

无论如何,第一个问题,所以即使我在 Interface Builder 中将宽度设置为 1,UITextField 也会将宽度调整为文本的宽度是否正确?

第二个问题,有没有办法为自动调整掩码的宽度设置一个最大值,这样宽度就不会达到 5000?

谢谢!

4

2 回答 2

3

第一个问题:没有。如果将宽度设置为 1,则文本字段最初的宽度为 1。如果在将文本字段添加为表格视图单元格的子视图后,表格视图单元格的宽度发生了变化,文本字段的宽度也会发生变化. 阅读iOS 视图编程指南中的“使用自动调整大小规则自动处理布局更改”

第二个问题:自动调整大小不支持设置最大宽度。如果您需要强制执行最大宽度,请创建一个 的子类,在您的子类中UITableViewCell覆盖layoutSubviews,并在代码中强制执行最大宽度。

于 2012-06-19T22:07:18.483 回答
1

自动调整大小意味着视图将随着超级视图调整大小而改变大小(在您的情况下为宽度)。如果您将视图设置为与边缘的固定距离和灵活的宽度,那么随着超级视图变得宽 100 像素,它将变得宽 100 像素。这并不意味着它会自动覆盖整个宽度。

此外,自动调整大小的蒙版仅表示视图的大小应该灵活,而不是它应该有多大/多小。如果你想做这些配置,你应该(也许等待 iOS 6 和)看看 Auto Layout。(不,它不在 NDA 之下,因为它在 WWDC 主题幻灯片上)

如果您不想自定义控制文本字段大小,那么您应该覆盖layoutSubviews自定义 UITableViewCell。

于 2012-06-19T22:06:52.417 回答