当前位置:  开发笔记 > IOS > 正文

来自UITableView的错误值:iOS8中的rowHeight

如何解决《来自UITableView的错误值:iOS8中的rowHeight》经验,为你挑选了2个好方法。

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

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

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

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



1> Rog..:

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

您将需要实现autoLayout(推荐)或实现新的委托方法:heightForRowAtIndexPath.这是一个关于自动布局的一个很好的问题:在UITableView中使用自动布局来获得动态单元格布局和可变行高

似乎你有效地编码44(旧的默认值),但是,你可以这样做(不推荐).


令我感到困惑的是为什么Apple会这样做.在XIB中,我将rowHeight设置为43,在运行时它是43,我在XIB中将其设置为45,在运行时为45.我在XIB中将它设置为44,在运行时它是-1?不确定这与旧版应用程序兼容.它打破了我的旧应用程序(iOS7).在这个荒谬行为的文档中甚至没有提及.事实上,这里是文档中的讨论如何开始"行高是非负的......"

2> Js Lim..:

这让我奋斗了好几个小时.我最终将值硬编码为44:

self.tableView.rowHeight = 44;

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有