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 (将#修改为@)