自定义UIView以点而不是条形显示进度

时间:2012-05-22 17:07:16

标签: ios xcode uiview uiprogressview

Progress Bar

我正在尝试设置一个视图,显示这些点的进度而不是实心条。理想情况下,我希望垂直填充点(从下到上)。

我在UIView中有两个UIImageViews,一个用于灰色背景,另一个用于遮盖前景。

 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];

我在SO question找到了代码。我似乎无法定义代理中更新进度的掩码宽度。

1 个答案:

答案 0 :(得分:0)

您可以在CGImageGetWidth(maskRef) * percentage

中尝试CGImageMaskCreate吗?
相关问题