bmj*_*hns 13 xcode uitableview ios8
我刚下载了Xcode6 Beta6,发现我的应用程序中存在一些奇怪的缺陷.经过一些初步的调试,我发现这heightForRowAtIndexPath
被称为无数额外的时间,并导致一些不良影响.
通常情况下,我希望heightForRowAtIndexPath
比我显示的行多出2次.因此,当我硬编码numberOfRowsInSection
返回3时,我应该看到heightForRowAtIndexPath
被调用5次.在iOS 7中就是这种情况,但是当我在Xcode6 Beta6中测试时,我看到heightForRowAtIndexPath
被调用了7次.当我返回4时,该方法被调用为9,5和它的11.所以看起来模式是我硬编码+ 1的行数的两倍.
有没有其他人遇到这个问题或找到解决方法?只是能够确认这是一个iOS错误将是一个巨大的帮助,因为我可以推迟缺陷,因为Apple可以自己解决这个问题.
编辑:此问题仍存在于Xcode 6 GM中
编辑2: Apple回应并关闭了我的错误报告,这里有回复:
委托的API合约是我们可以根据需要调用此方法.
我想我们只需处理这个问题,并且代码不应该完全依赖于调用此委托的时间.
Dee*_*G M 12
从iOS 8开始,Apple改变了他们决定表格视图内容大小的方式.这是为了进一步优化它,使我们在桌面设计中拥有更多的活力.
作为其中的一部分,他们现在不再为一次拍摄中的所有行调用heightForRowAtIndex路径,而是只是为了确定内容大小而多次调用它.内容大小确定也是动态的,因此多次调用.
不要在heightForRowAtIndexPath方法中进行任何高度计算.而是编写一个私有方法并将其视为过去的heightForRowAtIndexPath.将所有高度存储在字典中,并将NSIndexPath对象作为键存储.
当然,这意味着在调用reloadData之前调用此私有方法,如果数据已更改.
归档时间: |
|
查看次数: |
4302 次 |
最近记录: |