2016-03-07 64 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状态,以防您可能也在寻找。