сначала вы должны решить, какую из них округлить.
extension UIView {
func bottomRoundCorners(_ 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
}
func topRoundCorners(_ 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
}
}
Я буду применять пример кода класса collectionViewCell следующим образом
func configureCell(withBottomCorner bottomCorner: Bool) {
if bottomCorner == true {
self.contentView.clipsToBounds = true
setBottomCorner()
}
}
func setBottomCorner() {
if #available(iOS 11.0, *) {
self.contentView.layer.cornerRadius = 6
self.contentView.layer.maskedCorners = [.layerMaxXMaxYCorner, .layerMinXMaxYCorner]
} else {
self.contentView.bottomRoundCorners([.bottomLeft, .bottomRight], radius: 6.0)
}
}
надеюсь, что это поможет.