我用来创建矩形的代码(至少在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
.这意味着您的表视图已设置为自动单元格高度计算.
您将需要实现autoLayout(推荐)或实现新的委托方法:heightForRowAtIndexPath
.这是一个关于自动布局的一个很好的问题:在UITableView中使用自动布局来获得动态单元格布局和可变行高
似乎你有效地编码44(旧的默认值),但是,你可以这样做(不推荐).
这让我奋斗了好几个小时.我最终将值硬编码为44:
self.tableView.rowHeight = 44;