Swift / IOS重置ImageView放大CollectionViewCell

时间:2018-04-09 21:50:34

标签: ios swift uiscrollview uicollectionview uicollectionviewcell

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

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

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

self.currendIndex

然后尝试获取集合视图单元格,并在视图控制器内的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)
        }
    }

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

如何解决?

1 个答案:

答案 0 :(得分:0)

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

^(?<Prefix>The book named) (?<BookName>.+) (?<Suffix>is a classic.)$

它必须在异步