3

我正在尝试画一条直线。我已经得到它,所以它绘制了破折号,但这种黑色背景颜色仍然存在。我似乎对其他问题有很多答案,但没有一个有效。

Apple 的文档似乎指向填充颜色并使用 CGContextFillPath 或 CGContextDrawPath,但这些都不起作用,虚线的背景仍然是黑色。

- (void)drawRect:(CGRect)rect {
    CGContextRef contextRef = UIGraphicsGetCurrentContext();

    GLFloat lines[] = {self.frame.size.width, self.frame.size.width*2};

    CGFloat grey[4] = {0.6f, 0.6f, 0.6f, 1.0f};
    CGContextSetStrokeColor(contextRef, grey);
    CGContextSetFillColorWithColor(contextRef, [[UIColor clearColor] CGColor]);

    CGContextSetLineDash(contextRef, 0, lines, 2);
    CGContextSetLineWidth(contextRef, self.frame.size.width);

    CGContextBeginPath(contextRef);
    CGContextMoveToPoint(contextRef, 0, 0);
    CGContextAddLineToPoint(contextRef, 0, self.frame.size.height);

    CGContextDrawPath(contextRef, kCGPathFillStroke);
}
4

1 回答 1

1

当手动将此视图添加到视图层次结构中时,您只需确保设置了背景颜色。例如,如果您使用 初始化视图initWithFrame,则在该方法中设置背景颜色:

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self setBackgroundColor:[UIColor clearColor]];
    }
    return self;
}

或者,或者,在添加视图时,在此处设置背景颜色:

CustomView *customView = [[CustomView alloc] initWithFrame:frame];
customView.backgroundColor = [UIColor clearColor];
[self.view addSubview:customView];
于 2013-08-08T15:56:00.017 回答