我有一个使用 UICollectionView 的全屏图片库。它被分页并且一切运行正常,但有一件事我不喜欢。
单元格只有在进入可见视口(viewport)时才会被重复使用,并且在分配新图像时我会得到闪烁效果(对于当前行为来说是正常的)。
如何指定一个比当前 UICollectionView 框架稍大的视口(viewport),以便加载和重用 View 外的 +1/-1 页面?当它们进入 View 时,它们已经被初始化并准备就绪,因此闪烁效果将消失。
谢谢!
最佳答案
注意:这是假设垂直的,水平调整
你可以让frame变大,然后添加一个contentInset
CGFloat offset = 40.0; // or whatever works
CGRect yourFrame = yourCollectionView.bounds;
yourFrame.size.height += offset;
yourCollectionView.bounds = yourFrame;
CGFloat halfOffset = offset / 2.0;
yourFlowLayout.sectionInset = UIEdgeInsetsMake(halfOffset, 0, halfOffset, 0);
您必须根据您的代码放置这些,但这就是我们正在做的。我们正在稍微扩展您的框架,以便单元格重用发生在可见范围之外。通过将插图添加到您的流程布局中,您可以让内容仍然正确对齐。
关于ios - 是否可以增加 UICollectionViewLayout 视口(viewport)? (即在 UICollectionView 框架外加载 +2/-2 个单元格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23660928/