Merhabalar bu yazımda iOS ile UIImageView çokgen formda kırpma işlemi yapacağız.
Bu işlem UIImageView’i maskeleme şeklinde olacak. Bunun için UIBezierPath ile çizdiğimiz çokgen formu CAShapeLayer ile UIImageView üzerine katman olarak ekleyeceğiz. Tasarımsal olarak güzel görünen bir şekil oluşturmuş olacağız.
Aşağıdaki UIImageView extension ile kolaylıkla çokgen formda kırpma işlemi gerçekleştirebilirsiniz.
extension UIImageView { func clipToPolygon(corners: Int) { guard corners >= 3 else { return } let radius = min(self.frame.width/2.0, self.frame.height/2.0) let center = CGPoint(x: self.bounds.width/2.0,y: self.bounds.height/2.0) let path = UIBezierPath() path.lineWidth = 1 for index in 0...corners { let rad = (Double.pi / Double(corners) ) * Double(index * 2 + 1) print(rad * 180 / Double.pi) let drawPoint = CGPoint(x: center.x + radius * CGFloat(cos(rad)), y: center.y + radius * CGFloat(sin(rad))) if (index == 0) { path.move(to: drawPoint) } else if (index == corners ) { path.close() } else { path.addLine(to: drawPoint) } } let mask = CAShapeLayer() mask.path = path.cgPath self.layer.mask = mask self.layer.masksToBounds = false } }
Bu yazı yorumlara kapalı.