Fat*_*tie 11 uitableview ios heightforrowatindexpath ios7
我在使用estimatedHeightForRowAtIndexPath时发现了一个令人震惊的问题或反直觉行为
(1)我的桌子行高度差异很大.最终结果可以从111到约400.
(2)我绝对完美地计算每一行的高度.我手头有一个数组,也就是缓存.
{请注意,这正是苹果工程师现在推荐的......例如,第5点.在UITableView中使用自动布局进行动态单元格布局和可变行高度 }
(3)当heightForRowAtIndexPath要求高度时,我确实给它绝对正确的高度.
(4)当我构建单元格时,实际上,我将其构建到正确的高度(如(2)和(3)中所示).
{注意 - 当然iOS最终会调整单元格的高度,而不是"我".}
这一切都完美无缺.
也就是说,每个单元格都是由iOS构建的,其高度恰好是heightForRowAtIndexPath中给出的高度.
现在,我添加代码......
-(CGFloat)tableView:(UITableView *)tableView
estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 120;
}
Run Code Online (Sandbox Code Playgroud)
事实上,表没有更长的工作..................行高成为随机!
有没有人看到这种令人难以置信的行为?
我做了各种各样的测试,试图确定地狱估计的HeightForRowAtIndexPath的作用.起初,我认为它可能提供高度的下限.所以,150 ..甚至我的小细胞都会错误地达到150高度.但事实并非如此.
我认为它可能会做这样的事情:说你的estimatedHeightForRowAtIndexPath值是150.它有时使用150来表示(事实上()实际上是大小或更小的行,但有时它会从heightForRowAtIndexPath获得实际大小.
另一方面,如果你为estimatedHeightForRowAtIndexPath设置了一个小于实际存在的值(在我的例子中说是100),它几乎"完全不起作用"你只是得到了似乎只是随机高度的东西细胞.
非常高的细胞似乎正常工作,也许类似"如果从heightForRowAtIndexPath的高度是估计的两倍,那么它确实使用真正的高度"
要清楚,它似乎从来没有让细胞太小,但它往往使它们太大.
要清楚,我没有使用autolayout,它只是你必须构建的单元格类型.(我担心我不知道自动布局如何.)这只是Xcode5/iOS7 +.
| 归档时间: |
|
| 查看次数: |
16951 次 |
| 最近记录: |