在UITableView上显示徽章信息

时间:2010-09-11 02:26:34

标签: iphone

我希望在UITableView行显示徽章信息,如下图所示

alt text

我尝试使用以下代码:

UILabel *labelCell1 =[ [UILabel alloc]init];
labelCell1.frame = CGRectMake(160.9f,10.0f,60.0f,30.0f) ;
[labelCell1 setBackgroundColor:[UIColor 
    colorWithPatternImage:[[UIImage imageNamed:@"block.png"] 
    stretchableImageWithLeftCapWidth:0.0 topCapHeight:0.0]]]; 

但我无法得到上图所示的圆形块结果。

3 个答案:

答案 0 :(得分:6)

扔掉你的代码,不要重新发明轮子。这已由几个使其成为开源的人完成。 Here是一个,here是另一个。

答案 1 :(得分:2)

您可以使用图层来确保您的标签具有圆角,如示例所示。您还需要根据文本的宽度调整标签的矩形:

// set the text on the badge
labelCell1.text=[NSString stringWithFormat:@"%d", value];

// set the rounded corners on the layer
CALayer* layer=labelCell1.layer;
layer.masksToBounds = YES;
layer.cornerRadius = 9.0;

// adjust the width of the badge rect based on the text width
CGFloat textWidth=[labelCell1.text sizeWithFont:labelCell1.font].width+12;

labelCell1.frame=CGRectMake(
    labelCell1.frame.origin.x + labelCell1.frame.size.width - textWidth,
    labelCell1.frame.origin.y,
    textWidth,
    labelCell1.frame.size.height);

答案 2 :(得分:1)

您可以使用Link

中的代码获得以下输出

enter image description here