Настройки стиля UIButton игнорируются при переопределении 'drawRect'
Я создал пользовательскую цифровую клавиатуру iOS, где кнопки имеют закругленные углы:
control.layer.cornerRadius = 6;
control.layer.opacity = 1;
На одной из кнопок я хочу нарисовать изображение, и я подклассифицировал UIB-кнопку, чтобы переопределить функцию 'drawRect'.
@interface KfKeypadButtonWithDrawing : UIButton
- (void)drawRect:(CGRect)rect;
@end
Реализация drawRect просто рисует несколько линий на кнопке. Ничего особенного.
- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];
// custom drawing code to create an image on the button
}
Тем не менее, как только я переопределить drawRect
Кнопка перестает иметь закругленные углы. Есть ли способ нарисовать изображение на кнопке И сделать так, чтобы кнопка соответствовала настройке стиля cornerRadius?
Спасибо,
Аарон
2 ответа
Да, вот так:
override func drawRect(rect: CGRect) {
// the custom drawing
let roundedRect = UIBezierPath(roundedRect: rect, cornerRadius: 20)
UIColor.redColor().setFill()
roundedRect.fill()
// call super
super.drawRect(rect)
}
Попытайтесь поместить вещи, которые вы пытаетесь нарисовать в drawRect
в изображение (PNG, JPG) и использовать UIButtons
setImage:forState
или же setBackgroundImage:forState
,