UICollectionView 单元格阴影
Posted
技术标签:
【中文标题】UICollectionView 单元格阴影【英文标题】:UICollectionView Cell Shadow 【发布时间】:2017-01-05 14:58:29 【问题描述】:我正在尝试为我的自定义 UICollectionViewCell
添加阴影,这是我在自定义集合视图单元格类中使用的代码:
self.layer.shadowOffset = CGSizeMake(1, 0);
self.layer.shadowColor = [[UIColor blackColor] CGColor];
self.layer.shadowRadius = 5;
self.layer.shadowOpacity = .25;
这会给集合视图单元格的组件带来阴影。
【问题讨论】:
你能解释一下self
在这种情况下是什么吗?
self 是自定义的 uicollectionview 单元类
尝试将阴影添加到单元格的contentView
请检查您的 Cell 顶部是否有 UIView。在这种情况下,您需要对其进行屏蔽。
Shadow not showing when background color is clear color的可能重复
【参考方案1】:
不要忘记添加这两行
self.clipsToBounds = false
self.layer.masksToBounds = false
【讨论】:
太棒了,花了好几个小时寻找解决方法!谢谢!)【参考方案2】:Swift 4.2 和 xcode 10
这是添加阴影的代码。
cell.contentView.layer.cornerRadius = 2.0
cell.contentView.layer.borderWidth = 1.0
cell.contentView.layer.borderColor = UIColor.clear.cgColor
cell.contentView.layer.masksToBounds = true
cell.layer.backgroundColor = UIColor.white.cgColor
cell.layer.shadowColor = UIColor.gray.cgColor
cell.layer.shadowOffset = CGSize(width: 0, height: 2.0)//CGSizeMake(0, 2.0);
cell.layer.shadowRadius = 2.0
cell.layer.shadowOpacity = 1.0
cell.layer.masksToBounds = false
cell.layer.shadowPath = UIBezierPath(roundedRect:cell.bounds, cornerRadius:cell.contentView.layer.cornerRadius).cgPath
【讨论】:
【参考方案3】:cell.layer.backgroundColor 不应该是清晰的颜色
试试
cell.layer.backgroundColor = UIColor.white.cgColor
【讨论】:
【参考方案4】:转到 CustomCollectionViewCell.m 文件 为我工作。希望对你有帮助...
- (id)initWithFrame:(CGRect)frame
self = [super initWithFrame:frame];
if (self)
//////// make shadow of total view
self.clipsToBounds = NO;
self.layer.masksToBounds = NO;
self.layer.shadowRadius = 5;
self.layer.shadowOpacity = 0.5;
self.layer.shadowColor = [UIColor blackColor].CGColor;
self.layer.shadowOffset = CGSizeMake(0, 1);
self.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.bounds].CGPath;
// make radius of the cell
self.layer.cornerRadius = 5;
return self;
【讨论】:
以上是关于UICollectionView 单元格阴影的主要内容,如果未能解决你的问题,请参考以下文章
将 SKProduct 价格提取到 UICollectionView 单元格标签中
UICollectionView 水平分页仅在第一页上每行显示 3 个单元格
在 UICollectionView/UITableView 中为滚动视图的偏移设置动画会导致单元格过早消失