2016-03-07 38 views
0

我要去直通教程這裏:http://pinkstone.co.uk/how-to-build-a-uicollectionview-in-ios-8/定製UIcollectionViewCell,使用視圖來控制顏色的變化

,只見那看起來很棒,因爲它使一些簡單的,使用的視圖來顯示選擇/非選擇項目的顏色變化的部分.-

(void)awakeFromNib { 

    // background color 
    UIView *bgView = [[UIView alloc]initWithFrame:self.bounds]; 
    self.backgroundView = bgView; 
    self.backgroundView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"blue"]]; 

    // selected background 
    UIView *selectedView = [[UIView alloc]initWithFrame:self.bounds]; 
    self.selectedBackgroundView = selectedView; 
    self.selectedBackgroundView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"pink"]]; 
} 

作者表示,這是一種簡單的方法,無需管理單元的狀態。

問:我想在突出顯示過程中使用此方法更改顏色。但是,didHighlightItemAtIndexPath在CollectionViewController中,我希望它使用相同的過程。

基本上它所做的是基於選定/未選中從一種顏色變爲另一種顏色。我想使用添加一種顏色來表示處於被突出顯示/不顯示狀態之間。

我檢查了使用UIView的單元格中的所有方法,並且突出顯示/不顯示任何內容。

有關使用單元方法的優點的方法的任何想法?我可以從viewcontroller方法調用一個自定義方法並在那裏加載一個視圖?

你可能會認爲這是一個「按住」的顏色,當它被持有時會改變顏色。

回答

0

A UIView不會知道任何有關它的選定或未選擇狀態,因爲它是一個非常基本的組件,而不是特定於允許選擇的控件。 UICollectionViewCell確實有selected財產,所以這將是改變這些特點的正確的地方。看看這些文檔,看起來好像要麼使用setSelected,要麼使用selectedBackgroundView會給您一個很好的機會來自定義所選單元格的L & F.還有一個highlighted狀態,以防您可能也在尋找。