自定义UIcollectionViewCell,使用view控制颜色变化
Posted
技术标签:
【中文标题】自定义UIcollectionViewCell,使用view控制颜色变化【英文标题】:custom UIcollectionViewCell, using view to control color changes 【发布时间】:2016-03-07 20:52:14 【问题描述】:我正在阅读这里的教程:http://pinkstone.co.uk/how-to-build-a-uicollectionview-in-ios-8/
看到了一个看起来很棒的部分,因为它使事情变得简单,使用视图来显示选定/未选定项目的颜色变化。-
(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 方法调用自定义方法并在那里加载视图吗?
您可能会将其视为“按住”,当它被按住时会改变颜色。
【问题讨论】:
【参考方案1】:UIView
不会知道它的选中或未选中状态,因为它是一个非常基本的组件,并不特定于允许选择的控件。 UICollectionViewCell
确实有 selected
属性,所以这将是更改这些特性的正确位置。查看文档,似乎利用setSelected
或selectedBackgroundView
会给您一个自定义选定单元格的L&F 的好机会。还有一个 highlighted
状态,以防您可能也在寻找它。
【讨论】:
以上是关于自定义UIcollectionViewCell,使用view控制颜色变化的主要内容,如果未能解决你的问题,请参考以下文章
自定义 UICollectionViewCell 中的 UIScrollview 不起作用
XCTest 与自定义 UICollectionViewCell
UICollectionViewCell 内带有 UITableView 的自定义单元格