我用来创建矩形的代码(至少在 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/