1

我的目标是创建一个UILabel左上角为红色的(一个边长为 10-15 点的可见三角形)。我该怎么做?

我尝试子类化UILabel和覆盖drawRect,但没有成功。label.text如果我不覆盖,我不仅没有得到任何红角,而且还丢失了显示的红角drawRect

-(void) drawRect: (CGRect) rect
{

CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextBeginPath(ctx);
CGContextMoveToPoint(ctx,0,0);
CGContextMoveToPoint(ctx,10,0);
CGContextMoveToPoint(ctx,0,10);
CGContextClosePath(ctx);
CGContextSetRGBFillColor(ctx,50,0,0,1);
CGContextFillPath(ctx);

}

谢谢!

尼古拉

Ps 我想添加我想要创建的标签的图像,但我需要至少 10 点的声誉才能添加它:(

4

1 回答 1

1

与往常一样,阅读您正在使用的函数的文档就足够了。你做了假设,结果证明是错误的(不足为奇)。

CGContextMoveToPoint()函数开始一个新的子路径而不绘制。如果你想画一条线,那么……好吧……使用画线的函数:

CGPoint points[] = {
    CGPointMake(0, 0),
    CGPointMake(10, 0),
    CGPointMake(0, 10),
    CGPointMake(0, 0)
};
CGContextAddLines(ctx, points, sizeof(points) / sizeof(points[0]));
于 2013-03-01T14:40:01.767 回答