更改UICollectionView单元格的alpha值无法正常工作

时间:2015-08-17 07:34:48

标签: ios cocoa-touch

我想点击UICollectionView的单元格,单元格变为半透明。

    - (void)collectionView:(UICollectionView *)collectionView
didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    GLEpisodeCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:[GLEpisodeCell identifier] forIndexPath:indexPath];//GLEpisodeCell is subclass of UICollectionViewCell
    cell.alpha=0.5;
    cell.contentView.alpha=0.5;
}

但这不起作用。细胞仍然不透明。

3 个答案:

答案 0 :(得分:4)

尝试这样可能对你有帮助。

- (void)collectionView:(UICollectionView *)collectionView
didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    GLEpisodeCell *cell=[collectionView cellForItemAtIndexPath:indexPath];//GLEpisodeCell is subclass of UICollectionViewCell
    cell.alpha=0.5;
    cell.contentView.alpha=0.5;
}

答案 1 :(得分:2)

布局设置alpha。要覆盖,请将其放在您的单元子类中:

override func apply(_ layoutAttributes: UICollectionViewLayoutAttributes) {
    alpha = 0.5
}

您还必须为新创建的单元格设置alpha。

答案 2 :(得分:0)

cell.backgroundColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:0.5];

这将创建单元格的背景颜色为50%的透明度,而不是单元格的内容。如果你想要那么你想要的那样。 cell.backgroundView.alpha = 0.5;