Радиус UIButton topLeft и bottomLeft не отображается должным образом

Чтобы создать закругленную кнопку с левым верхним и нижним левым радиусом, я использую следующий код:

    var maskPath = UIBezierPath(roundedRect: button.bounds,
        byRoundingCorners: .BottomLeft | .TopLeft,
        cornerRadii: CGSizeMake(15.0, 15.0))
    var shapeLayer:CAShapeLayer = CAShapeLayer()
    shapeLayer.frame = self.view.bounds
    shapeLayer.path  = maskPath.CGPath;
    button.layer.mask = shapeLayer;
    button.layer.borderWidth = self.borderWidth
    button.layer.borderColor = GenerateShape.UIColorFromHex(self.borderStrokeColor, alpha: (self.alphaValue-0.3)).CGColor
    button.backgroundColor = GenerateShape.UIColorFromHex(self.whiteColor, alpha: (self.alphaValue-0.3))

Но я получаю следующий вывод: введите здесь описание изображения

Так почему же верхний левый и нижний левый углы невидимы?? Что мне сделать, чтобы они были видны?? Спасибо.


person Linkon Sid    schedule 13.09.2015    source источник


Ответы (1)


Вы используете свой путь Безье как маску. Но вы также не рисуете свой путь Безье; вы рисуете прямоугольную границу самой кнопки. Таким образом, ваша маска маскирует углы прямоугольной границы.

person matt    schedule 04.10.2015
comment
так что я должен сделать, чтобы нарисовать его правильно. пожалуйста, предложите кусок кода. Благодарность - person Linkon Sid; 04.10.2015
comment
Я не знаю точно, что ты хочешь сделать. И я не собираюсь писать ваш код за вас. Вы спросили: почему верхний левый и нижний левый углы невидимы. Я объяснил это вам. Если вы посмотрите на свой собственный код и подумаете о нем, вы увидите, что то, что я говорю, верно и логично. Затем подумайте, чего вы хотите, и напишите свой код, чтобы он делал это вместо этого. Например, возможно, вместо того, чтобы рисовать границу кнопки, вам следует попробовать нарисовать путь Безье. - person matt; 05.10.2015