我有一个设计元素,我很难搞清楚;希望有人能够指引我走向正确的方向。我试图建立的元素就像这样;使用UIBezierPath绘制圆角使用UIBezierPath
实际上,它是一个圆角矩形左侧,顶部的行程,和右侧(底部应该没有中风)。
我已经涉足使用下面的代码;
// Create the rounded rectangle
let maskPath = UIBezierPath(roundedRect: myView.bounds, byRoundingCorners: [.topLeft, .topRight], cornerRadii: CGSize(width: 4.0, height: 4.0))
// Setup a shape layer
let shape = CAShapeLayer()
// Create the shape path
shape.path = maskPath.cgPath
// Apply the mask
myView.layer.mask = shape
随后,我使用以下方法在矩形上绘制笔划;
// Add border
let borderLayer = CAShapeLayer()
borderLayer.path = maskPath.cgPath
borderLayer.fillColor = UIColor.clear.cgColor
borderLayer.strokeColor = UIColor.white.cgColor
borderLayer.lineWidth = 2.0
borderLayer.frame = self.bounds
self.layer.addSublayer(borderLayer)
产生以下图像;
我已经无法找出如何可以卸下底部行程或画使用UIBezierPath()的项目,但在某种程度上四舍五入的角落,这将是相同的到圆角矩形(我在同一视图中使用另一个圆角矩形用于不同的目的,并且圆角将需要相同)。
谢谢!
,完美的工作!谢谢,@matt!我太过于复杂了;我没有意识到我可以用'.clear'混合模式进行中风。现在有道理! – ZbadhabitZ
还有另一种方法,即在绘制圆角矩形之前剪切。也许我也应该证明这一点。 – matt
添加代码以演示第二种方式,裁剪。在这种情况下,我更喜欢裁剪。它更容易控制。 – matt