Использование UIBezierPath: byRoundingCorners: с Swift 2 и Swift 3

Я использую этот код, чтобы закруглить 2 угла кнопки.

let buttonPath = UIBezierPath(roundedRect: button.bounds, byRoundingCorners: UIRectCorner.TopLeft | UIRectCorner.BottomLeft, cornerRadii: CGSizeMake(1.0, 1.0))

Выдает ошибку:

бинарный оператор '|' не может применяться к двум операндам UIRectCorner.

Как использовать этот метод в Swift 2.0?

Ответы

Ответ 1

Swift 2:

let buttonPath = UIBezierPath(roundedRect: button.bounds, byRoundingCorners: [UIRectCorner.TopLeft , UIRectCorner.BottomLeft], cornerRadii: CGSizeMake(1.0, 1.0))

Swift 3:

let buttonPath = UIBezierPath(roundedRect: button.bounds, byRoundingCorners: [UIRectCorner.topLeft , UIRectCorner.bottomLeft], cornerRadii: CGSize(width:1.0, height:1.0))

Ответ 2

В этом случае в swift 2.0 требуется объединение двух углов. F. ex.:

let corners = UIRectCorner.TopLeft.union(UIRectCorner.BottomLeft)
let buttonPath = UIBezierPath(roundedRect: button.bounds, byRoundingCorners: corners, cornerRadii: CGSizeMake(1.0, 1.0))

Работает с Swift 2 и Swift 3