代码之家  ›  专栏  ›  技术社区  ›  Jordan

用于索引/计数的TableView椭圆形按钮

  •  0
  • Jordan  · 技术社区  · 15 年前

    有人能帮我为UITableView创建一个索引/计数按钮吗?

    iTunes http://img.skitch.com/20091107-nwyci84114dxg76wshqwgtauwn.preview.jpg

    2 回复  |  直到 15 年前
        1
  •  4
  •   luvieere    15 年前

    哇!aaa。。。好啊我有一个更简单的方法:

    #import <QuartzCore/QuartzCore.h>
    
    
    .....
    
    UILabel *label = [[UILabel alloc] initWithFrame: 
            CGRectMake(cell.contentView.frame.size.width - 50, 0, 35, 35)];
    label.layer.cornerRadius = 5;
    label.backgroundColor = [UIColor blueColor]; //feel free to be creative
    label.clipToBounds = YES;
    label.text = @"7"; //Your text here
    
    [cell.contentView addSubview: label];
    [label release];
    

    基本上,您正在使用QuartzCore框架制作带有圆角的UILabel—别忘了包含它。额外说明:它仅适用于操作系统>3.0.

        2
  •  3
  •   Ben Gottlieb    15 年前

        CGRect          bounds = self.bounds;
        CGContextRef    context = UIGraphicsGetCurrentContext();
        float           radius = bounds.size.height / 2.0;
        NSString        *countString = [NSString stringWithFormat: @"%d", _count];

    if (_count < 100) bounds = CGRectMake(5, 0, bounds.size.width - 10, bounds.size.height);
    
    CGContextClearRect(context, bounds);
    
    CGContextSetFillColorWithColor(context, _color.CGColor);
    CGContextBeginPath(context);
    CGContextAddArc(context, radius + bounds.origin.x, radius, radius, M_PI / 2 , 3 * M_PI / 2, NO);
    CGContextAddArc(context, (bounds.size.width + bounds.origin.x) - radius, radius, radius, 3 * M_PI / 2, M_PI / 2, NO);
    CGContextClosePath(context);
    CGContextFillPath(context);
    
    [[UIColor whiteColor] set];
    
    UIFont                  *font = [UIFont boldSystemFontOfSize: 14];
    CGSize                  numberSize = [countString sizeWithFont: font];
    
    bounds.origin.x += (bounds.size.width - numberSize.width) / 2;
    
    [countString drawInRect: bounds withFont: font];