1

UITableViewControllerのセルに、数字が入った円を表示したいと思います。を使って円を描いています UIBezierPathbezierPathWithOvalInRect:

残念ながら、fill色を に設定することはできますが、渡されclearColorた の未使用部分は黒です。CGRectbezierPathWithOvalInRect:

作成された黒い領域を取り除くにはどうすればよいですか?

参照用の部分的なスクリーンショット:
スクリーンショット
(最終的にはその番号を円の中に入れたいと思っています)

コード:

LTTTableViewCell:

- (void)awakeFromNib {
    [super awakeFromNib];

    // Create a square view using the height of the cell
    CGRect positionFrame = CGRectMake(0, 0, self.bounds.size.height, self.bounds.size.height);
    LTTDrawBallView *drawBallView = [[LTTDrawBallView alloc] initWithFrame:positionFrame];
    [self.contentView addSubview:drawBallView];
}

LTTDrawBallView:

- (void)drawRect:(CGRect)rect
{
    // Create a new rect with some padding  
    // + create a circle from this new rect:
    CGRect box = CGRectInset(self.bounds, self.bounds.size.width * 0.1f, self.bounds.size.height * 0.1f);
    UIBezierPath *ballBezierPath = [UIBezierPath bezierPathWithOvalInRect:box];
    [[UIColor whiteColor] setStroke];
    [[UIColor greenColor] setFill]; // Green here to show the black area
    [ballBezierPath stroke];
    [ballBezierPath fill];
    [self setBackgroundColor:[UIColor clearColor]]; // Happens with and without this line
}
4

1 に答える 1

4

LTTDrawBallView の init メソッドに、次のコードを含めます。

self.opaque = NO;
self.backgroundColor = [UIColor clearColor];
于 2013-08-07T23:48:09.597 に答える