【发布时间】:2013-04-01 10:15:54
【问题描述】:
使用a previous question的答案,我做了一个无限滚动。但是,滚动时出现问题。
似乎有一毫秒,UICollectionView(或者可能是UIScrollView)认为显示的单元格不再可见,因此将单元格重用于新单元格。这导致滚动时单元格被双重使用。
我认为这是我的问题的原因是因为为了能够无限滚动而使用的“作弊”是重置UIScollView的contentOffset。
我的UICollectionView 的单元格包含使用MKNetworkKit 异步下载(从缓存中获取)的背景图像。
另一个副作用之一是,当连续滚动视图“屏幕长度”时,屏幕会被截断。几乎就像在UIScrollView 中发生了reloadData,但代码根本没有重新加载数据。
我的问题是:如何防止 UICollectionView 重复使用可见单元格和突然截断视图?
【问题讨论】:
-
这不是您的问题的解决方案,但请通过bugreport.apple.com 在 UICollectionView (iPhone SDK) 上提交增强请求以支持循环内容。我不久前提出了类似的请求,如果有足够的需求,Apple确实会阅读并响应此类请求。
-
我不确定滚动过程中“屏幕被截断”是什么意思。您能否再描述一下,这是整体视图还是单元格的问题?
-
您使用的是自定义集合视图布局吗?
-
@Wain 我的意思是屏幕突然变空,即使单元格应该在屏幕上显示内容。它是随机发生的。
-
确认基础,是与内容偏移重置相关的截断(不应该是随机的),以及您如何决定何时重置(是任意的还是在内容边界的精确页面高度)?
标签: ios objective-c cocoa-touch uiscrollview uicollectionview