【问题标题】:UITableViewController - TableView wider than screenUITableViewController - 比屏幕更宽的 TableView
【发布时间】:2025-11-28 03:05:02
【问题描述】:

我整天都遇到一些问题。我正在使用 UITableViewController。 TableView 有 5 个静态单元格。我在我的单元格内放了一个标签并给它限制。这是我的单元格:

每次我将屏幕更改为不同版本的 iPhone 时,它​​都会警告我此标签的宽度为 600(故事板中的默认值)并且它会从右侧的屏幕移出。为什么 TableViewController 没有设置 TableView 屏幕大小?我在这里想念什么?这实际上是 viewController 的子视图吗?如果是,如何通过约束来判断故事板内 tableView 的适当大小?

【问题讨论】:

    标签: ios objective-c iphone uitableview uistoryboard


    【解决方案1】:

    只需将一个表格视图控制器放入您的故事板并配置您的静态单元格。此步骤不需要任何约束。对于您的标签,您需要一组不同的约束:

    根据您的图片,我假设您希望标签位于表格视图的左侧,就像在大多数表格视图单元格中一样。在这种情况下,您不需要像那样扩展宽度。只需将标签拖到表格视图单元格中,将其放在左侧,然后 a) 将其垂直居中 b) 将其固定到屏幕右侧,如屏幕截图所示(忽略该值并确保取消选中约束为边距。希望这会有所帮助!

    【讨论】:

    • 好的,这适用于左侧,但我想将它固定在右侧。我想在左侧有自动调整大小的标签,在单元格的右侧有一个按钮。当我将按钮固定在右侧时,它就离开了屏幕。
    • 对于右侧按钮,只需执行相同操作,但将其固定在右侧。这就是所有的变化 - 无需修改框架或任何东西
    • 我添加了垂直约束并将其固定到右边缘并取消选中约束到边距,它仍然会离开屏幕。警告说:预期 x=327 实际 x=552
    • 不需要垂直约束,只需垂直居中并固定即可
    • @flipper 进行更改并看到警告后,您是否在 IB 中运行“更新帧”选项?如果它只是一个警告,而不是一个错误,那可能就是你所缺少的。
    【解决方案2】:

    是的,正如 cyril 所说,最好的选择是在情节提要中使用 TableViewController 并将其设置为“静态原型”。默认为“动态”。那么就不需要在代码中管理表格视图了。

    【讨论】: