Как преобразовать вид изображения в пользовательскую форму (swift3)

Я пытаюсь преобразовать один вид изображения для вывода в объекте справа. Это очень похоже на вопрос Как быстро сделать изображение с другой формой. Однако это было в swift2. Я попробовал это, и это не похоже на работу в swift3.

Л.Л

1 ответ

Решение

Попробуйте вот так:

extension UIImageView {
    func addMask(_ bezierPath: UIBezierPath) {
        let pathMask = CAShapeLayer()
        pathMask.path = bezierPath.cgPath
        layer.mask = pathMask
    }
}

Тестовая площадка:

let myPicture = UIImage(data: try! Data(contentsOf: URL(string:"https://stackru.com/images/ef9dfaef8c3bec7e67a69584eb37fe5a3e115132.jpg")!))!
let iv = UIImageView(image: myPicture)

let bezierPath = UIBezierPath()
bezierPath.move(to: iv.center)
bezierPath.addLine(to: CGPoint(x: iv.frame.maxX, y: 0))
bezierPath.addLine(to: CGPoint(x: iv.frame.maxX, y: iv.frame.maxY))
bezierPath.addLine(to: CGPoint(x: 0, y: iv.frame.maxY))
bezierPath.addLine(to: .zero)
bezierPath.close()

iv.addMask(bezierPath)
Другие вопросы по тегам