【发布时间】:2015-05-21 11:39:50
【问题描述】:
我有一个奇怪的问题。尽管我确实阅读了很多关于如何做到这一点的教程,但最终结果只显示了贝塞尔线,没有任何阴影。我的代码很简单:
let borderLine = UIBezierPath()
borderLine.moveToPoint(CGPoint(x:0, y: y! - 1))
borderLine.addLineToPoint(CGPoint(x: x!, y: y! - 1))
borderLine.lineWidth = 2
UIColor.blackColor().setStroke()
borderLine.stroke()
let shadowLayer = CAShapeLayer()
shadowLayer.shadowOpacity = 1
shadowLayer.shadowOffset = CGSize(width: 0,height: 1)
shadowLayer.shadowColor = UIColor.redColor().CGColor
shadowLayer.shadowRadius = 1
shadowLayer.masksToBounds = false
shadowLayer.shadowPath = borderLine.CGPath
self.layer.addSublayer(shadowLayer)
我做错了什么,因为我似乎没有看到任何问题,但我当然错了,因为没有出现阴影。函数是drawRect,基本的UIVIew里面没有多余的东西,x和y是框架的宽度和高度。
非常感谢!
【问题讨论】:
-
您是否设置了 [self setClipsToBounds:NO] 和 [self.layer setMaskToBounds:NO]?
-
我有 shadowLayer.maskToBounds = false,而不是剪辑到边界。应该是 self 还是 shadowLayer?编辑:设置 self.clipsToBounds,没有任何反应
标签: swift shadow uibezierpath cashapelayer