如何创建一个带红色角落的UILabel?

时间:2013-03-01 14:35:04

标签: ios uiview uilabel drawrect

我的目标是创建一个左上角为红色的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);

}

谢谢!

尼古拉

P.S。我想添加一个我想要创建的标签的图像,但我需要至少10点的声誉来添加它:(

1 个答案:

答案 0 :(得分:1)

与往常一样,阅读您正在使用的功能的文档已经足够了。你做了一些假设,结果证明这是错误的(毫不奇怪)。

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

CGPoint points[] = {
    CGPointMake(0, 0),
    CGPointMake(10, 0),
    CGPointMake(0, 10),
    CGPointMake(0, 0)
};
CGContextAddLines(ctx, points, sizeof(points) / sizeof(points[0]));