Пользовательская форма iOS UIButton - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь создать кнопку полукруга в соответствии с каркасом.

image

Но это не получается.

image

Это код, который я написал на C #:

PORCalculatorButton.Layer.CornerRadius = PORCalculatorButton.Layer.Bounds.Width / 2;
PORCalculatorButton.ClipsToBounds = true;
PORCalculatorButton.Layer.MaskedCorners = (CoreAnimation.CACornerMask)3;

На кнопку также накладываются ограничения макета.

Может кто-нибудь сказать мне, где я ошибся, илиесли есть лучший способ?Я приму любые ответы в ObjC, Swift или C # Спасибо.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018
  1. Из-за ограничений макета размер вашей кнопки изменится в соответствии с вашими внешними видами.Вы должны убедиться, что применили свойства слоя после рендеринга вашей кнопки, чтобы убедиться, что у вас есть окончательные рамки / границы, а также повторно применить те же свойства, если размер кнопки изменяется (скажем, из-за поворота и т. Д.)
  2. Вы пытаетесь закрепить / замаскировать кнопку по вертикали, но вы используете ширину, а не высоту, чтобы вычислить радиус угла.Это предполагаемая реализация?
0 голосов
/ 20 сентября 2018

Попробуйте следующий код:

let circlePath = UIBezierPath.init(arcCenter: 
CGPointMake(PORCalculatorButton.bounds.size.width / 2, PORCalculatorButton.bounds.size.height), radius: PORCalculatorButton.bounds.size.height, startAngle: 0.0, endAngle: CGFloat(M_PI), clockwise: false)
let circleShape = CAShapeLayer()
circleShape.path = circlePath.CGPath
PORCalculatorButton.layer.mask = circleShape
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...