0

プログレスバー

実線のバーの代わりにこれらのドットで進行状況を表示するビューをセットアップしようとしています。理想的には、ドットを垂直に(下から上に)塗りつぶしたいと思います。

UIView 内に 2 つの UIImageView があり、1 つは灰色の背景用で、もう 1 つは前景がマスクされています。

 UIImage * bgImg = [UIImage imageNamed:@"prog_bg.png"];
    UIImageView * bgView = [[UIImageView alloc] initWithImage:bgImg];
    progImage = [UIImage imageNamed:@"prog.png"];
    maskRef = [UIImage imageNamed:@"prog_mask.png"].CGImage;
    CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
                                        CGImageGetHeight(maskRef),
                                        CGImageGetBitsPerComponent(maskRef),
                                        CGImageGetBitsPerPixel(maskRef),
                                        CGImageGetBytesPerRow(maskRef),
                                        CGImageGetDataProvider(maskRef), NULL, false);

    CGImageRef maskedImage = CGImageCreateWithMask([progImage CGImage], mask);
    UIImage * img = [UIImage imageWithCGImage:maskedImage];
    imageView = [[UIImageView alloc] initWithImage:img];
    [progView addSubview:bgView];
    [progView addSubview:imageView];

I found the code in this SO question. I can't seem to define the width of the mask from my delegate that updates the progress.

4

1 に答える 1

1

CGImageGetWidth(maskRef) * percentage入ってみませんかCGImageMaskCreate

于 2012-05-23T04:01:49.590 に答える