gpt4 book ai didi

ios - Swift/IOS 重置 CollectionViewCell 中的 ImageView 缩放

转载 作者:行者123 更新时间:2023-11-30 11:36:12 26 4
gpt4 key购买 nike

我有以下层次结构:UIViewController -> UICollectionView -> UICollectionViewCell -> UIScrollView -> UIImageView -> UIImage

有了这个层次结构,我就可以拥有良好的缩放功能。但是当我完成放大并滑入下一个图像时,我需要将前一个 ImageView 重置为其原始比例。

我的尝试:我将集合中的当前索引存储到

self.currendIndex

然后尝试获取 Collection View 单元格并在 View Controller 内的scrollViewWillBeginDecelerating事件中设置其 ScrollView 缩放

    func scrollViewWillBeginDecelerating(_ scrollView: UIScrollView) {
let indexPath = IndexPath(item: self.currendIndex, section: 0)
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath) as! ImageCollectionViewCell
DispatchQueue.main.async {
cell.scrollView.zoomScale = 1
cell.scrollView.contentOffset = CGPoint(x: 0, y: 0)
}
}

但它不会缩小它,它只是转到下一个元素,然后当我回来时它仍然具有缩放级别。

如何解决?

最佳答案

我通过使用 reloadItems 方法解决了这个问题:

func scrollViewWillBeginDecelerating(_ scrollView: UIScrollView) {
let indexPath = IndexPath(item: self.currendIndex, section: 0)

DispatchQueue.main.async(execute: {() -> Void in
self.collectionView.reloadItems(at: [indexPath])
})
}

它必须在异步内部

关于ios - Swift/IOS 重置 CollectionViewCell 中的 ImageView 缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49742205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com