如何为 UICollectionViewCell 创建阴影
How to create shadow for UICollectionViewCell
我需要为 UICollectionView
中的单元格创建阴影。我对单元格进行了子类化,并在 layoutSubviews
中添加了以下代码:
-(void)layoutSubviews{
[super layoutSubviews];
self.layer.masksToBounds = NO;
self.layer.shadowOpacity = 0.75f;
self.layer.shadowRadius = 5.0f;
self.layer.shadowOffset = CGSizeZero;
self.layer.shadowColor = [UIColor blackColor].CGColor;
self.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.bounds].CGPath;
}
但是细胞越来越高,结果是这样的:
如果我删除:
self.layer.masksToBounds = NO;
单元格显示正确(单元格之间的距离为 10px)但阴影不可见。我究竟做错了什么?另外,在 layoutSubviews
方法中添加阴影是否正确?
找到了,我忘了在layoutSubviews中添加这一行:
self.clipsToBounds = YES;
现在单元格既有间距又有阴影
您需要启用在边界外创建阴影;
[cell.layer setMasksToBounds:NO];
func dropShadow() {
self.layer.masksToBounds = false
self.layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.25).cgColor
self.layer.shadowOpacity = 0.5
self.layer.shadowOffset = CGSize(width: 0.0, height: 2.0)
self.layer.shadowRadius = 4.0
self.layer.cornerRadius = 5.0
}
//Direct Add Shadow to cell
Cell.dropShadow()
我需要为 UICollectionView
中的单元格创建阴影。我对单元格进行了子类化,并在 layoutSubviews
中添加了以下代码:
-(void)layoutSubviews{
[super layoutSubviews];
self.layer.masksToBounds = NO;
self.layer.shadowOpacity = 0.75f;
self.layer.shadowRadius = 5.0f;
self.layer.shadowOffset = CGSizeZero;
self.layer.shadowColor = [UIColor blackColor].CGColor;
self.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.bounds].CGPath;
}
但是细胞越来越高,结果是这样的:
如果我删除:
self.layer.masksToBounds = NO;
单元格显示正确(单元格之间的距离为 10px)但阴影不可见。我究竟做错了什么?另外,在 layoutSubviews
方法中添加阴影是否正确?
找到了,我忘了在layoutSubviews中添加这一行:
self.clipsToBounds = YES;
现在单元格既有间距又有阴影
您需要启用在边界外创建阴影;
[cell.layer setMasksToBounds:NO];
func dropShadow() {
self.layer.masksToBounds = false
self.layer.shadowColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.25).cgColor
self.layer.shadowOpacity = 0.5
self.layer.shadowOffset = CGSize(width: 0.0, height: 2.0)
self.layer.shadowRadius = 4.0
self.layer.cornerRadius = 5.0
}
//Direct Add Shadow to cell
Cell.dropShadow()