我有一個設計元素,我很難搞清楚;希望有人能夠指引我走向正確的方向。我試圖建立的元素就像這樣;使用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