2017-09-26 170 views
0

我正在用this概念創建照片庫。爲了列出圖像,我使用了UICollectionView。每個圖像都以全屏尺寸自定義單元存儲。在單元格內部,我有UIScrollView,裏面有UIImageView。 ScrollView用於縮放圖像。所有工作正常,但是,當我放大一個圖像並滾動到另一個單元格而不縮小時,我希望重置前一個單元格的滾動視圖。在滾動後重置UICollectionViewCell中的滾動視圖

內自定義單元格級,我設置ZoomScale每個單元格的滾動視圖,當他們被啓動,像這樣:

func configureCell(_ photo: String){ 
    albumPhoto.image = UIImage(named: photo) 
    scrollView.setZoomScale(1.0, animated: false) 
} 

我返回小區之前配置cellForItemAt功能每個單元格。

當我放大第一個單元格時,滾動到第二個並回滾到第一個單元格,圖像仍然放大。但是如果我滾動到第二個和第三個單元格然後返回到第一個單元格,圖像是縮小到默認值。

即使在從第二個單元格滾動回滾到第一個單元格之後,我怎樣才能實現,滾動視圖將被設置爲默認縮放比例。

回答

1

首先讓你的類符合

class profViewController: UIScrollViewDelegate 

由於UICollectionView是

其次實現這個委託方法

func scrollViewDidScroll(_ scrollView: UIScrollView) 
    { 

     let cd = areaSettTable.visibleCells as! 

     [profTableViewCell] 

     ////// 

     loop here 

    } 

然後通過這個數組循環,並調用該函數的UIScrollView

的子類,重置每個單元的縮放比例

注意:您應該將profTableViewCell名稱更改爲您的單元格

+0

我已經想過這個問題,但我不知道它是做它,因爲我通過每一個細胞都需要循環的最佳方式。我可能有很多細胞並且循環遍歷所有細胞,但對於一個細胞似乎並不是最好的解決方案。 –

+0

循環將只針對可見細胞而不是所有表格視圖的細胞 – ShKhan

+0

有多少個細胞會被視爲可見細胞,是不是出現在屏幕外的細胞也包括在內? –