UIViewの4つの角のうち、1つだけ丸めたいことってありませんか?
私はあります。
そんなときは以下のようにUIViewを拡張しましょう。
extension UIView {
func round(corners: UIRectCorner = [], cornerRadii: CGSize = CGSize(width: 3.0, height: 3.0)) {
let maskPath = UIBezierPath(
roundedRect: bounds,
byRoundingCorners: corners,
cornerRadii: cornerRadii
)
let maskLayer = CAShapeLayer()
maskLayer.frame = bounds
maskLayer.path = maskPath.cgPath
layer.mask = maskLayer
}
}
例えば、左上を丸めたい場合はこのように使用します。
topLeftRoundedView.round(corners: [.topLeft], cornerRadii: CGSize(width: 4, height: 4))
地味に便利です。