我用来创建矩形的代码(至少到iOS7为止)是

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

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

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

最佳答案

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

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

但是,似乎您实际上已经在对44(旧的默认值)进行有效的硬编码,因此您可以这样做(不推荐)。

10-07 19:27
查看更多