ios - 如何只为边框添加阴影?

标签 ios swift

我想在 collectionview 单元格周围添加阴影。但是阴影在单元格中的图像和标签周围,而单元格周围没有阴影。有人知道如何解决吗?

    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.masksToBounds = false
    cell.layer.shadowColor = UIColor.black.cgColor
    cell.layer.shadowOpacity = 0.5
    cell.layer.shadowOffset = CGSize(width: -1, height: 1)
    cell.layer.shadowRadius = 1

Shadow around the content(not the border)

最佳答案

您正在将阴影直接应用到 contentView,因此它不起作用。您需要在您的 contentView 中获取一个 View ,将您的所有内容放入该 View 中,并从各个方面提供一些填充(例如 8pt)。

假设我将这个 View 命名为vwContainer,那么:

@IBOutlet weak var vwContainer: UIView!
let shadowPath = UIBezierPath(rect: vwContainer.bounds)
vwContainer.layer.masksToBounds = false
vwContainer.layer.shadowColor = UIColor.blackColor().CGColor
vwContainer.layer.shadowOffset = CGSizeMake(0.0, 5.0)
vwContainer.layer.shadowOpacity = 0.5
vwContainer.layer.shadowPath = shadowPath.CGPath

如果您尝试实现任何其他 UI,请用图片更新您的问题。

关于ios - 如何只为边框添加阴影?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53909149/

相关文章:

iOS 7 UISegmentedControl 图片不显示

ios - 如何使用 AVFoundation 播放带有 alpha channel 的视频?

Swift:高分/NSUserDefaults

swift - 更改 IBOutlet (UIImageView) 的宽度

ios - 如何根据四个可能的值生成随机 SKSpriteNode

ios - ARSCNView 截图

ios - UITableView 在 heightForRowAtIndexPath 和 cellForRowAtIndexPath 之间挂起 5 秒

ios - 在 UITableViewCell 中的不同大小的 UIView 上放置一个 mask 层

iphone - 如何保存数据以便将来可以删除、编辑的文件?

ios - 我正在尝试获取 apple music API 的用户 token ,我已经从 python 终端命令生成了有效的开发人员 token