如何为UICollectionViewCell创建阴影

LS_*_*LS_ 7 objective-c ios uicollectionview 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;


}
Run Code Online (Sandbox Code Playgroud)

但是细胞越来越高,这就是结果:

在此输入图像描述

如果我删除:

self.layer.masksToBounds = NO;
Run Code Online (Sandbox Code Playgroud)

单元格显示正确(它们之间的距离为10px),但阴影不可见.我究竟做错了什么?另外,在layoutSubviews方法中添加阴影是否正确?

Pus*_*shp 7

您需要启用在边界之外创建的阴影;

[cell.layer setMasksToBounds:NO];
Run Code Online (Sandbox Code Playgroud)


LS_*_*LS_ 0

找到了,我忘了在layoutSubviews中添加这一行:

self.clipsToBounds = YES;
Run Code Online (Sandbox Code Playgroud)

现在单元格既有间距又有阴影