IOS UICollectionView 和 UIScrollView 回收问题

标签 ios objective-c uiscrollview uicollectionview

我在从事的 iOs 项目中遇到“类似回收”的问题。 (我说的是类似回收的问题,因为它让我想到了我在 Android 项目中遇到的回收问题)。

我有一个带有 UICollectionViewCell 的 UICollectionView。每个 UICollectionViewCell 都包含一个 UIScrollView 和一个 UIImageView,以便能够缩放/平移 UIImageView。

我遇到的问题是,当我缩放 UIImageView(让我们称其为 UIImageView Bob)然后以 Bob 在屏幕上不可见的方式滚动 UICollectionView,然后向后滚动 UICollectionView 以便 Bob 可见时,有时缩放应用于 UICollectionView 的另一个 UICollectionCellView 并且 Bob 不再缩放,有时 Bob 正确缩放。

知道问题可能是什么吗?

谢谢

最佳答案

UICollectionView 数据源委托(delegate)回收单元格 View 以提高性能。因此,如果您有一个 imageView1 缩放为 2.0 的单元格,假设渲染了一个 imageView15 的单元格,UICollectionView 将尝试再次回收 imageView1 缩放为 2.0 的单元格。您需要做的是每次在此函数中呈现单元格时重置缩放比例 - collectionView:cellForItemAtIndexPath:

如果你想让它记住缩放,最简单的方法是每次创建一个 NSMutableArray 并将缩放存储为 NSNumbers - collectionView:didEndDisplayingCell:forItemAtIndexPath: 被调用。然后,当调用 - collectionView:cellForItemAtIndexPath: 时,从数组加载缩放。

关于IOS UICollectionView 和 UIScrollView 回收问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29569567/

相关文章:

ios - UIScrollView 和 UIImageView - 水平移动

iphone - 切换 View 时 UIScrollView 顶部位置发生变化

ios - 按钮在 ScrollView 上保持 float

ios - UITableViewCell 在 cell.textLabel 中显示长文本

objective-c - 创建自定义弹出式插页式广告的最佳方式是什么?

ios - iOS 中的 Storyboard约束

ios - 数据如何存储在核心数据模型(属性)中

ios - 在字符串数组中的任意位置查找字母 ios

ios - Storyboard - ViewController setViewDelegate : unrecognized selector

ios - 处理从 QR 码读取的数据