我只想使用以下函数在视图中绘制一个简单的矩形:
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
if (self.drawTextBouble) {
[[UIColor blueColor] setFill];
UIBezierPath *aPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(40, 0, 230, 120) cornerRadius:12.0];
[aPath fill];
}
}上面的代码用纯黑色背景填充视图,矩形外面是不透明的。我该如何解决这个问题呢?
编辑:
下面的解决方案是有效的,但这也是有效的:
[self setOpaque:NO];发布于 2013-06-18 15:18:15
您绘制代码是可以的。如果您希望自定义绘制视图具有透明背景,则只需设置
self.backgroundColor = [UIColor clearColor];在视图的- (id)initWithFrame:(CGRect)frame中
编辑:只是关于调用[super drawRect:rect]的一点注意事项。UIView文档说:
如果直接子类化UIView,则此方法的实现不需要调用
。然而,如果你是一个不同的视图类的子类,你应该在你的实现中的某个时候调用super。
https://stackoverflow.com/questions/17162263
复制相似问题