微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift 中多个对象的单个阴影?

如何解决Swift 中多个对象的单个阴影?

我想画一个对话框气泡,所以我需要 2 个对象:

  • 箭头(只能用 UIBezierPath 绘制)

  • 圆角矩形(可以用UIBezierPathUIView+圆角半径绘制)

paintcode 生成代码示例:

//// Rectangle Drawing
let rectanglePath = UIBezierPath(roundedRect: CGRect(x: 68,y: 38,width: 101,height: 38),cornerRadius: 5)
UIColor.gray.setFill()
rectanglePath.fill()


//// polygon Drawing
let polygonPath = UIBezierPath()
polygonPath.move(to: CGPoint(x: 118,y: 25.5))
polygonPath.addLine(to: CGPoint(x: 125.36,y: 38.25))
polygonPath.addLine(to: CGPoint(x: 110.64,y: 38.25))
polygonPath.close()
UIColor.gray.setFill()
polygonPath.fill()

问题是,如果我向这段代码添加阴影,那么它会被应用两次并且可能会与对象重叠。

我可以用一个对象替换 2 个对象,但代码的复杂性显着增加(绘制矩形和 3 个点将替换为约 50 个点,包括“控制点”)。

那么是否有可能结合 rectanglePathpolygonPath 以某种方式在没有这种复杂性的情况下绘制单个阴影?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。