UIView drawRect没有为我画任何东西?

时间:2010-01-14 23:36:07

标签: iphone

我制作了一个UIViewController类。显示正常。然后我创建了一个UIView类来使用它。在InterfaceBuilder中,我将UIView类设置为我自己的自定义UIView类。然后我覆盖了该类中的drawRect方法:

- (void)drawRect:(CGRect)rect 
{
    NSLog(@"Yes we are drawing with width: %f", rect.size.width);

    CGContextRef g = UIGraphicsGetCurrentContext();
    CGContextSetRGBStrokeColor(g, 1, 1, 1, 1);
    CGContextSetRGBFillColor(g, 1, 1, 1, 0);
    CGContextFillRect(g, CGRectMake(0, 0, 100, 100));

我可以看到日志语句打印,但是我的绘图代码实际上没有任何可见效果。矩形不会在屏幕上绘制。在InterfaceBuilder中是否还有其他一些连接可以使它工作?

除了在InterfaceBuilder中为我的视图控制器的UIView属性设置类名外,我没有改变任何其他内容。

由于

1 个答案:

答案 0 :(得分:0)

CGContextSetRGBFillColor的最后一个参数是填充颜色的alpha。您将其设置为零,因此您将填充透明色。试试这个:

- (void)drawRect:(CGRect)rect 
{
    NSLog(@"Yes we are drawing with width: %f", rect.size.width);

    CGContextRef g = UIGraphicsGetCurrentContext();
    CGContextSetRGBStrokeColor(g, 1, 1, 1, 1);
    CGContextSetRGBFillColor(g, 1, 1, 1, 1);
    CGContextFillRect(g, CGRectMake(0, 0, 100, 100));
...