UIBezierPath简单矩形

时间:2013-06-18 06:49:56

标签: ios objective-c core-graphics

我只想使用以下函数在视图中绘制一个简单的矩形:

- (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];

1 个答案:

答案 0 :(得分:9)

您的绘图代码没问题。如果您希望自定义绘制视图具有透明背景,则只需设置

即可
self.backgroundColor = [UIColor clearColor];

在视图的- (id)initWithFrame:(CGRect)frame

编辑:关于调用[super drawRect:rect]的一点注意事项。 UIView文档说:

  

如果直接子类UIView,则此方法的实现不需要调用super。但是,如果要为不同的视图类创建子类,则应在实现中的某个时刻调用super。