ios - UITableView 的错误值 :rowHeight at iOS8

标签 ios uitableview ios7

我用来创建矩形的代码(至少在 iOS7 之前)是

CGRect rect = [cTableView frame];
rect.origin.y += [cTableView rowHeight];
searchOverlayView = [[BecomeFirstResponderControl alloc] initWithFrame:rect];

在 iOS7 上,cTableView(UITableView 的一个实例)返回 44。使用 iPhone 5s 在 iOS8 中测试返回 -1

为什么会这样?需要使用什么正确代码才能使我的应用程序向后兼容 iOS7?

最佳答案

Apple 将 iOS8 中的默认行高更改为 UITableViewAutomaticDimension,声明为 -1。这意味着您的表格 View 已设置为自动计算单元格高度。

您将需要实现自动布局(推荐)或实现新的委托(delegate)方法:heightForRowAtIndexPath。这是一个关于自动布局的好问题:Using Auto Layout in UITableView for dynamic cell layouts & variable row heights

尽管如此,您似乎实际上是在对 44(旧的默认值)进行硬编码,所以您可以这样做(不推荐)。

关于ios - UITableView 的错误值 :rowHeight at iOS8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25509070/

相关文章:

ios - UITableViewCell 高度不随自定义高度改变

ios - 使用 .capitalized 时出错(Swift 3)

ios - 在 iOS 7 中动态更改 UIViewController 的 View

iphone - 仅更新到 iOS 8 后,旧版 iOS 7 应用程序是否仍可在 AppStore 中使用?

ios - 更新包含许多值的核心数据对象

ios - 将录制的音频保存在documents目录中,并创建一个包含所有音频文件的数据库

swift - 在表格 View 单元格中显示弹出窗口

json - Restkit 映射 - 没有响应描述符与加载的响应匹配

ios - 如何在 TableViewCell 中获取更改后的值

ios - 如何在自定义单元格中设置详细附件类型