【问题标题】:How to do a shadow outside of the fill of a UIView?如何在 UIView 的填充之外做阴影?
【发布时间】:2018-04-19 13:44:04
【问题描述】:

我有一个半透明填充的单元格。由于填充是半透明的,我可以看到填充后面的阴影。如何隐藏单元格填充下的阴影?

self.layer.cornerRadius = 6
self.layer.masksToBounds = false
self.layer.shadowOpacity = 0.8
self.layer.shadowColor = UIColor.black.withAlphaComponent(0.6).cgColor  
self.layer.shadowRadius = 2
self.layer.shadowOffset = CGSize(width: 5, height: 5)  

这就是我所拥有的:

具有透明视图的所需结果:

【问题讨论】:

  • 能发个截图什么的吗?我不确定 1) 正在发生什么,2) 你希望发生什么。
  • 我在答案中添加了屏幕截图
  • Sooo 是当前的还是期望的结果?
  • 这是当前结果,我们可以看到单元格框架内的阴影。但我希望只在单元格后面看到它
  • 嗯,我想你必须在半透明和阴影之间做出决定。

标签: ios swift shadow


【解决方案1】:

根据我的理解,您需要这种视图:

你可以试试这个:

    let viewShadow = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
    viewShadow.center = self.view.center
    viewShadow.layer.cornerRadius = 10.0
    viewShadow.layer.borderColor = UIColor.black.cgColor
    viewShadow.layer.borderWidth = 0.5
    viewShadow.backgroundColor = UIColor.white.withAlphaComponent(0.4)
    viewShadow.layer.shadowColor = UIColor.lightGray.cgColor
    viewShadow.layer.shadowOpacity = 1
    viewShadow.layer.shadowOffset = CGSize(width: 20.0, height:  20.0)
    viewShadow.layer.shadowRadius = 5
    self.view.addSubview(viewShadow)

输出

希望这会有所帮助。

【讨论】:

  • 视图必须使用 alpha = 0.6,如​​果在你的变体中我实现透明,阴影在单元格下变得可见
  • 我只是按照我的方式建议你,虽然它会对你有所帮助。如果它对你有用,或者它帮助你支持或批准@SergeyHleb,那么它就会表扬我们
  • 这对我的情况没有帮助
  • 那么请你解释一下你到底想要什么?
  • 我只想看到填充后面的阴影,而不是半透明单元格下的阴影
【解决方案2】:

这可能会有所帮助。我们需要做的就是改变阴影路径。

    cell.layer.cornerRadius = 6
    cell.layer.masksToBounds = false
    cell.layer.shadowOpacity = 0.8
    cell.layer.shadowColor = UIColor.black.withAlphaComponent(0.6).cgColor
    cell.layer.shadowRadius = 2
    cell.layer.shadowOffset = CGSize(width: 5, height: 5)
    let rect = CGRect(x: cell.frame.origin.x, y: cell.frame.origin.y + cell.frame.size.height, width: cell.frame.size.width, height: 3)
    cell.layer.shadowPath = CGPath(roundedRect: rect, cornerWidth: 1, cornerHeight: 1, transform: nil)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-14
    • 2012-01-09
    • 1970-01-01
    • 2010-10-22
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多