在我的 iOS 8 应用程序中,我有一个自定义 UITableViewCell ,它是使用自动布局在 .xib 文件中定义的。我已经设置了 UITableView 以便它使用自调整大小的单元格,这一切都很好。
在我的单元格的 .xib 文件中,我设计了“Any x Any”大小类,它可以工作。我还想为“Compact x Any”尺寸类提供不同的设计,所以我将该布局添加到我的 .xib 中。
当我在 iPhone 设备(真实设备或模拟器)上运行应用程序时,我发现单元格的大小总是像使用我的“Any x Any”布局一样,但单元格的内容总是像它使用我的“Compact x Any”尺寸类。无论方向如何,都会发生这种情况。
在 iPad 设备(真实或模拟器)上,它总是使用“Any x Any”布局来确定大小和布局,我认为这是正确的。
有没有其他人试过这个并让它在 iPhone 上工作?感觉我正在尝试做的事情不应该是一个不寻常的要求。
总而言之,我认为布局在所有设备上都正确发生,但自调整单元逻辑似乎不尊重它所在的大小类。
Best Answer-推荐答案 strong>
这似乎是一个已知的错误,在这里描述:rdar://17799811 .
解决方法是在我的 View Controller 的 viewDidAppear 方法中调用 tableView.reloadData() 。它确实有效,但是有一个丑陋的重绘,您会在以正确的大小重绘之前暂时看到压扁的 View 内容。
此外,在 iPhone 6 Plus 上,当您将方向从纵向更改为横向时,垂直尺寸类别会从紧凑变为常规,因此我还需要在这种情况下重新绘制。我可能会捕捉到方向变化,但相反(我认为这是更“正确”的方法)我选择在我的 View Controller 中覆盖较新的 traitCollectionDidChange 方法。我只是在那里调用 tableView.reloadData() 。在这种情况下,变化非常顺利,我对此很满意。当表格 View 首次显示时,这只是最初的丑陋重绘让我感到厌烦。
更新:我发现将我的一个垂直约束的优先级放宽到 999 使重绘变得不那么难看。单元格的高度仍然变化很大,但至少内容没有改变大小。
关于ios - UITableViewCell 中的大小类,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/26277492/
|