Я хочу сделать разные круглые углы на мой взгляд.Мои взгляды загружаются динамически.Например: у меня есть 3 вида, и я хочу передать разные значения углов для каждого вида.
View1: topLeft: 12, bottomLeft: 12, topRight: 4, bottomRight: 4
View2: topLeft: 4, bottomLeft: 4, topRight: 12, bottomRight: 12
View3: topLeft: 4, bottomLeft: 12, topRight: 4, bottomRight: 4
Пример кода:
extension UIView{
enum Corner:Int {
case bottomRight = 0,
topRight,
bottomLeft,
topLeft
}
private func parseCorner(corner: Corner) -> CACornerMask.Element {
let corners: [CACornerMask.Element] = [.layerMaxXMaxYCorner, .layerMaxXMinYCorner, .layerMinXMaxYCorner, .layerMinXMinYCorner]
return corners[corner.rawValue]
}
private func createMask(corners: [Corner]) -> UInt {
return corners.reduce(0, { (a, b) -> UInt in
return a + parseCorner(corner: b).rawValue
})
}
func roundCorners(corners: [Corner], amount: CGFloat) {
layer.cornerRadius = amount
let maskedCorners: CACornerMask = CACornerMask(rawValue: createMask(corners: corners))
if #available(iOS 11.0, *) {
layer.maskedCorners = maskedCorners
} else {
// Fallback on earlier versions
layer.cornerRadius = 8 // Setting static values for the below versions
}
}
}
cardView.roundCorners(corners: [.topRight, .bottomRight], amount: 12).
Я хочу передать массив значений угла вместо одного значения.ожидая, чтобы пройти как этот коэффициент: [12,4,12,4].