在滚动后重置UICollectionViewCell中的滚动视图
我正在用this概念创建照片库。为了列出图像,我使用了UICollectionView。每个图像都以全屏尺寸自定义单元存储。在单元格内部,我有UIScrollView,里面有UIImageView。 ScrollView用于缩放图像。所有工作正常,但是,当我放大一个图像并滚动到另一个单元格而不缩小时,我希望重置前一个单元格的滚动视图。在滚动后重置UICollectionViewCell中的滚动视图
内自定义单元格级,我设置ZoomScale每个单元格的滚动视图,当他们被启动,像这样:
func configureCell(_ photo: String){
albumPhoto.image = UIImage(named: photo)
scrollView.setZoomScale(1.0, animated: false)
}
我返回小区之前配置cellForItemAt
功能每个单元格。
当我放大第一个单元格时,滚动到第二个并回滚到第一个单元格,图像仍然放大。但是如果我滚动到第二个和第三个单元格然后返回到第一个单元格,图像是缩小到默认值。
即使在从第二个单元格滚动回滚到第一个单元格之后,我怎样才能实现,滚动视图将被设置为默认缩放比例。
您需要实现此方法:https://developer.apple.com/documentation/uikit/uicollectionviewdelegate/1618087-collectionview 并在显示单元格之前缩小scrollView。这个方法将处理你的情况。快乐编码;)
func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath)
首先让你的类符合
class profViewController: UIScrollViewDelegate
由于UICollectionView是
其次实现这个委托方法
func scrollViewDidScroll(_ scrollView: UIScrollView)
{
let cd = areaSettTable.visibleCells as!
[profTableViewCell]
//////
loop here
}
然后通过这个数组循环,并调用该函数的UIScrollView
的子类,重置每个单元的缩放比例注意:您应该将profTableViewCell名称更改为您的单元格
我已经想过这个问题,但我不知道它是做它,因为我通过每一个细胞都需要循环的最佳方式。我可能有很多细胞并且循环遍历所有细胞,但对于一个细胞似乎并不是最好的解决方案。 –
循环将只针对可见细胞而不是所有表格视图的细胞 – ShKhan
有多少个细胞会被视为可见细胞,是不是出现在屏幕外的细胞也包括在内? –
这就像一个魅力。谢谢 –