【发布时间】:2013-09-23 19:29:03
【问题描述】:
我有一个 UIControl 子类,我在其中实现了 drawRect。我正在尝试使用UIBezierPath 在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 没有被绘制。另外,不确定使用选择器是否是最好的方法。有人知道这是怎么回事吗?
【问题讨论】:
标签: objective-c cocoa drawrect uibezierpath