2015-12-03 54 views
1

我的視圖控制器中有一個UICollectionView。它已經建立並且工作正常。Swift 2 - 將選定的CollectionView單元格放在其他單元格的前面

我想縮小單元格內的一個按鈕時,按下了一個單元格。

但是我已經放大了這個單元的代碼,我找不到強迫選中單元格去其他單元格的方法。 現在,單元格在選定之前始終在單元格後面選中它。

如何強制選中的單元格放大其他單元格的前方?

@IBAction func detailBtnAction(sender:UIButton){ 

     let indexUser = (sender.layer.valueForKey("indexBtn")) as! Int 
     let indexPath = NSIndexPath(forItem: indexUser, inSection: 0) 
     let feedCell = feedCollectionView.cellForItemAtIndexPath(indexPath) 
      feedCell?.bringSubviewToFront(feedCollectionView) 

     feedCell?.contentView.bringSubviewToFront(feedCollectionView) 

     UIView.animateWithDuration(1.0) {() -> Void in 
      feedCell?.transform = CGAffineTransformMakeScale(5, 5) 
     } 

} 
+0

在我看來,你在做什麼是一個壞主意。一般來說,Apple的複雜UI對象(集合視圖,表格視圖,拾取器等)應被視爲「黑盒子」,並且不應該混淆視圖層次結構。在收集視圖的情況下,您擁有每個單元格的內容,但是操縱單元格的大小/順序/轉換可能會導致問題。 –

回答

1

看來你已經混合了一些東西的順序。

從文檔:

,使其出現在它的兄弟姐妹的頂部移動指定的子視圖。

FUNC bringSubviewToFront(_視圖:的UIView)

參數

視圖 - 該子視圖移動到前面。

此方法將指定的視圖移動到子視圖屬性中視圖數組的末尾。

所以您的來電:
feedCell?.contentView.bringSubviewToFront(feedCollectionView)
實際上意味着細胞sontentview應feedCollectionView移動到前面。現在
,這是一些受過教育的猜測基礎上的命名,但它倒是應該看起來像:
feedCollectionView.bringSubviewToFront(feedCell?)

您可以通過細胞本身就存在,因爲它從UIView繼承。

+1

非常感謝你..不知道爲什麼我做的是相反的! – SNos

+0

沒問題,有時顯然最難找到的東西;] – Losiowaty

相關問題