我有一個UIControl
子類,其中我已經實現了drawRect
。我正在嘗試使用UIBezierPath
在drawRect
方法中繪製一個矩形。所有適當的方法都被調用,沒有任何東西是空的,應用程序運行時沒有問題。問題是,沒有什麼,但畫框。意思是,我可以看到框架的區域,因爲它是黑色的,但我看不到畫在框架上的任何東西。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