我正在尝试为我的 iOS 应用程序实现一个网格(想想 .NET 的 DataGridView)。我正在使用带有自定义 UITableViewCell 子类的 UITableView,其中我有几个标签代表该行的每一列数据。我的问题与在设备方向更改后调整这些标签的宽度有关。我基本上想按比例调整它们的大小,例如,在纵向占据网格宽度 1/3 的列在切换到横向时仍将占据宽度的 1/3。
现在我通过覆盖- (void)layoutSubviews
我的 UITableViewCell 子类的方法来实现这一点;我基本上只是硬编码 iPad 和 iPhone 横向与纵向的比例。但是,这仅在网格本身根据方向更改按比例调整大小时才有效,当然并非总是如此。
为了实现在任何情况下都可以使用的解决方案,我考虑过self.bounds.size.width
在 layoutSubviews 方法中使用,但似乎自动调整掩码是更好的解决方案。如果我将每个 UILabel 的掩码设置为,UIViewAutoResizingFlexibleWidth | UIViewAutoResizingFlexibleLeftMargin | UIViewAutoResizingFlexibleRightMargin
那么我应该实现我正在寻找的缩放类型。但是,我想不通的是如何设置每个标签的初始帧。如果在调用 layoutSubviews 之前我不知道单元格的起始边界,我该如何安排我的子视图开始?