Ответ 1
В Swift 5 UIColor
имеет метод setStroke()
. setStroke()
имеет следующее объявление:
func setStroke()
Устанавливает цвет последующих операций обводки на цвет, который представляет приемник.
Следовательно, вы можете использовать setStroke()
следующим образом:
strokeColor.setStroke() // where strokeColor is a 'UIColor' instance
Приведенный ниже код игровой площадки показывает, как использовать setStroke()
вместе с UIBezierPath
для рисования круга с зеленым цветом заливки и светло-серым цветом обводки внутри подкласса UIView
:
import UIKit
import PlaygroundSupport
class MyView: UIView {
override func draw(_ rect: CGRect) {
// UIBezierPath
let newRect = CGRect(
x: bounds.minX + ((bounds.width - 79) * 0.5 + 0.5).rounded(.down),
y: bounds.minY + ((bounds.height - 79) * 0.5 + 0.5).rounded(.down),
width: 79,
height: 79
)
let ovalPath = UIBezierPath(ovalIn: newRect)
// Fill
UIColor.green.setFill()
ovalPath.fill()
// Stroke
UIColor.lightGray.setStroke()
ovalPath.lineWidth = 5
ovalPath.stroke()
}
}
let myView = MyView(frame: CGRect(x: 0, y: 0, width: 200, height: 300))
PlaygroundPage.current.liveView = myView