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

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

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

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

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

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


person sanjihan    schedule 10.08.2015    source источник


Ответы (2)


Свифт 2:

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

Swift 3 и Swift 4:

let buttonPath = UIBezierPath(roundedRect: button.bounds, 
                              byRoundingCorners: [.topLeft ,.bottomLeft], 
                              cornerRadii: CGSize(width:1.0, height:1.0))
person Juri Noga    schedule 10.08.2015

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

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.

person lukszar    schedule 06.10.2015