Как создать пользовательский UIView в форме лица в Swift? - PullRequest
0 голосов
/ 13 февраля 2020

Я нашел решение, чтобы оно выглядело как эллипс, но я хочу, чтобы оно выглядело скорее как лицо.

Форма лица, которую я хочу

Это решение для того, чтобы сделать его эллипсом:

class EllipseView: UIView {

    override func layoutSubviews() {
        super.layoutSubviews()
        layoutOvalMask()
    }

    private func layoutOvalMask() {
        frame = self.frame
        let mask = self.shapeMaskLayer()
        let bounds = self.bounds
        if mask.frame != bounds {
            mask.frame = bounds
            mask.path = CGPath(ellipseIn: bounds, transform: nil)
        }
    }

    private func shapeMaskLayer() -> CAShapeLayer {
        if let layer = self.layer.mask as? CAShapeLayer {
            return layer
        }
        let layer = CAShapeLayer()
        layer.fillColor = UIColor.white.cgColor
        self.layer.mask = layer
        return layer
    }

}

Форма эллипса, которая у меня сейчас есть

...