Закруглить несколько краёв у view (Core Graphics! View Round Corners) - Swift 5
// 1 вариант используя расширение
extension UIView {
func roundCorners(corners:UIRectCorner, radius: CGFloat) {
let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
let mask = CAShapeLayer()
mask.path = path.cgPath
self.layer.
mask = mask
}
}
// 1 вариант - использование
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
yourView.
roundCorners(
corners: [.bottomLeft , .bottomRight],
radius: 20)
}
// 2 вариант используя функцию(универсальная функция)
func roundCorners(presentView : UIView, corners: UIRectCorner, radius: Int = 8) {
presentView.clipsToBounds = true
let maskPath1 =
UIBezierPath(
roundedRect: presentView.
bounds,
byRoundingCorners: corners,
cornerRadii: CGSize(width: radius, height: radius))
let maskLayer1 = CAShapeLayer()
let rect = presentView.bounds
maskLayer1.frame = rect
maskLayer1.path = maskPath1.cgPath
presentView.
layer.
mask = maskLayer1
}
// 2 вариант - использование
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
roundCorners(
presentView: flowerView,
corners: [.bottomLeft, .bottomRight],
radius: 30)
}
Возврат к списку