加载具有与其 UICollectionView 不同的 alpha 值的 UICollectionViewCell
Posted
技术标签:
【中文标题】加载具有与其 UICollectionView 不同的 alpha 值的 UICollectionViewCell【英文标题】:Load a UICollectionViewCell with different alpha value than its UICollectionView 【发布时间】:2015-12-03 15:39:12 【问题描述】:我无法为我的 UICollectionViewCell
提供与拥有它们的 UICollectionView
不同的 alpha。我看过其他一些帖子,比如this one,但没有一个对我有用。我有一个带有UICollectionView
的.xib 文件,其中alpha 设置为0.9,其中的单元格是从另一个.xib 文件加载的,其alpha 设置为1.0。无论我尝试了什么,UICollectionView
的 alpha 优先。这些尝试包括:
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! Cell
// Here is the first attempt
cell.alpha = 1.0
cell.contentView.alpha = 1.0
// Here is the second attempt
let attribute = UICollectionViewLayoutAttributes(forCellWithIndexPath: indexPath)
attribute.alpha = 1.0
cell.applyLayoutAttributes(attribute)
cell.setNeedsDisplay()
return cell
我希望单元格在不透明的情况下加载,但我希望包含它们的集合视图稍微透明。每个单元格上都加载了一个完全不能透明的唯一图像。
Edit1:我尝试将UICollectionView
的backgroundColor
设置为使用1.0 alpha 清除,然后在我的viewDidLoad()
方法中为其提供自定义backgroundView
。我有一个集合视图的@IBOutlet
,用于设置以下内容:
@IBOutlet weak var collectionView: UICollectionView!
// MARK: -View Lifecycle
override func viewDidLoad()
super.viewDidLoad()
collectionView.delegate = self
collectionView.dataSource = self
let background = UIView(frame: collectionView.bounds)
background.backgroundColor = UIColor(red: 26/255.0, green: 26/255.0, blue: 26/255.0, alpha: 0.97)
collectionView.backgroundView = background
collectionView.registerNib(UINib(nibName: "Cell", bundle: nil), forCellWithReuseIdentifier: "Cell")
这确实有效。
【问题讨论】:
您希望 collectionView 的 alpha 值为 0.9,而 collectionViewCells 的值为 1.0? 是的! collectionView 的 alpha 为 0.9,它为单元格提供了相同的 alpha。 尝试将背景视图设置为集合视图,然后将其更改为 alpha。希望这会有所帮助 【参考方案1】:您不能有 alpha != 1 的父视图及其 alpa=1 的子视图,它们不会按预期工作。
通常我所做的是使用辅助视图(与集合视图相同的框架),父视图的兄弟(您的集合视图)视图,alpha 设置为 X 值。将集合视图背景的颜色设置为 clearColor。
【讨论】:
请看我的编辑。恐怕我做的不对?以上是关于加载具有与其 UICollectionView 不同的 alpha 值的 UICollectionViewCell的主要内容,如果未能解决你的问题,请参考以下文章
具有网络数据的 UICollectionView 在与交互之前不显示单元格
具有异步图像加载的自调整 UICollectionView 单元格
无法从 UITableViewCell 加载 UICollectionView