У меня есть UIControl
подкласс, где у меня есть drawRect
. Я пытаюсь нарисовать прямоугольник внутри метода drawRect
, используя UIBezierPath
. Вызывается все соответствующие методы, ничего не равно null, и приложение запускается без проблем. Проблема в том, что ничего, кроме кадра, не нарисовано. Значит, я вижу область кадра, потому что она черная, но я не вижу ничего, что было нарисовано на кадре.drawRect: вызывается, только показывает рамку, а не рисунок
Вот что я делаю, чтобы создать экземпляр класса:
ZHButton *button =
[[ZHButton alloc] initWithFrame:CGRectMake(100, 200, 100, 50)];
button.buttonType = NSSelectorFromString(LEFT_ROUNDED_CORNER_BUTTON);
[self.view addSubview:button];
Вот это DrawRect: метод, который вызывает различные методы, используя селектор:
- (void)drawRect:(CGRect)rect {
UIBezierPath *button = [self performSelector:self.buttonType withObject:nil];
[[UIColor orangeColor] setFill];
[button fill];
}
- (UIBezierPath *)drawButtonWithLeftCornersRounded {
return [UIBezierPath bezierPathWithRoundedRect:self.frame
byRoundingCorners:UIRectCornerTopLeft |
UIRectCornerBottomLeft
cornerRadii:buttonRadii];
}
Все кажется, работает нормально , но UIBezierPath
не нарисован. Кроме того, не уверен, что использование селектора - лучший способ сделать это. Кто-нибудь знает, что с этим происходит?
drawButtonWithLeftCornersRounded вызывается. self.buttonType - это селектор. Я пробовал ваши изменения, он имел те же результаты. – tentmaking