2015-05-03 34 views
1

我有一個uicollectionview,與子類的uicollectionviewcells。我想在觸摸時更改單元格的顏色,然後在釋放觸摸時返回到默認設置。另外,如果我可以爲這種顏色變化設置動畫效果,那將是最佳選擇。我嘗試過實現didHighlightItemAtIndexPath方法並更改出列單元格的backgroundColor屬性,但沒有任何內容出現變化。我能做到這一點的唯一方法是覆蓋單元格的touchesBegan方法,但不調用SelectSelectItemAtIndexPath。正確的方法來突出顯示uicollectionviewcell

如果我使用didHighlightItemAtIndexPath,則會調用該方法,但由於某些原因,背景色不會更改。

我不知道什麼時候觸摸了UICollectionViewCell的標準方法,但有什麼方法可以運行它嗎?

回答

1

你必須在cellForItemAtIndexPath配置取出的細胞的backgroundView:

let backgroundView = UIView(frame: CGRectMake(0, 0, cell.contentView.frame.width, cell.contentView.frame.height)) 
    backgroundView.backgroundColor = .blueColor() 
    cell.selectedBackgroundView = backgroundView 
+1

這似乎工作。任何有關動畫的想法? – milesper

+0

嘗試繼承UIView。 在這個子類viewDidLoad中,您可以使用UIView.animateWithDuration進行動畫製作。然後在cellForRowAtIndexPath中將此子類作爲backgroundView傳遞 – gutenmorgenuhu