我用来创建矩形的代码(至少到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(旧的默认值)进行有效的硬编码,因此您可以这样做(不推荐)。