У меня есть расширение, которое закругляет углы UIImage. Это расширение отлично работает. Я также хотел бы добавить обводку / границу к изображению.
Причина, по которой я не делаю все это в UIImageView, заключается в том, что изменяется масштабирование / соотношение сторон изображений, поэтому необходимо округлить и обвести изображение, а не само изображение.
extension UIImage{
var roundedImage: UIImage {
let rect = CGRect(origin:CGPoint(x: 0, y: 0), size: self.size)
let border = CAShapeLayer()
border.path = CGPath(rect: rect, transform: nil)
border.lineWidth = 10
border.strokeColor = UIColor.red.cgColor
UIGraphicsBeginImageContextWithOptions(self.size, false, 1)
UIBezierPath(
roundedRect: rect,
cornerRadius: 40
).addClip()
self.draw(in: rect)
return UIGraphicsGetImageFromCurrentImageContext()!
}
}
Я добился прогресса, добавив CAShapeLayer()
, чтобы добавить красную обводку. Просто не могу понять, как добавить его к фактическому пути roundedImage
. Или даже если это правильный подход.
Как создать расширение UIImage для скругления углов и добавления границы / обводки?