Вы можете попробовать следующий код для обработки различий версии iOS
- Добавьте расширение для UIView, вы можете изменить его по своему усмотрению.
extension UIView {
func roundCorners(corners: UIRectCorner, radius: CGFloat) {
if #available(iOS 11.0, *) {
let cornerMasks = [
corners.contains(.topLeft) ? CACornerMask.layerMinXMinYCorner : nil,
corners.contains(.topRight) ? CACornerMask.layerMaxXMinYCorner : nil,
corners.contains(.bottomLeft) ? CACornerMask.layerMinXMaxYCorner : nil,
corners.contains(.bottomRight) ? CACornerMask.layerMaxXMaxYCorner : nil,
corners.contains(.allCorners) ? [CACornerMask.layerMinXMinYCorner, CACornerMask.layerMaxXMinYCorner, CACornerMask.layerMinXMaxYCorner, CACornerMask.layerMaxXMaxYCorner] : nil
].compactMap({ $0 })
var maskedCorners: CACornerMask = []
cornerMasks.forEach { (mask) in maskedCorners.insert(mask) }
self.clipsToBounds = true
self.layer.cornerRadius = radius
self.layer.maskedCorners = maskedCorners
} else {
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
}
}
}
- используйте такую функцию:
cell.productnamevw.roundCorners(corners: [.bottomLeft, .bottomRight], radius: 10)
Еще одна вещь, для вашего случая, я бы порекомендовал вам настроить ячейку в самой ячейке
class FeaturedCell: UICollectionViewCell {
@IBOutlet private weak var productnamevw: UIView!
override func awakeFromNib() {
super.awakeFromNib()
self.productnamevw.roundCorners(corners: [.bottomLeft, .bottomRight], radius: 10)
}
override func layoutSubviews() {
super.layoutSubviews()
self.productnamevw.roundCorners(corners: [.bottomLeft, .bottomRight], radius: 10)
}
}