且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

自定义形状进度视图

更新时间:2023-02-01 22:54:57

使用CoreGraphics进行屏蔽:

Masking using CoreGraphics:

UIImage *img = [UIImage imageNamed:@"imagetomask.png"];
CGImageRef maskRef = [UIImage imageNamed:@"mask.png"].CGImage;
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
                                                CGImageGetHeight(maskRef),
                                                CGImageGetBitsPerComponent(maskRef),
                                                CGImageGetBitsPerPixel(maskRef),
                                                CGImageGetBytesPerRow(maskRef),
                                                CGImageGetDataProvider(maskRef), NULL, false);

CGImageRef maskedImage = CGImageCreateWithMask([img CGImage], mask);
[imageView setImage:maskedImage];

您的 mask.png 应该不是透明的图像像倒置的alpha一样填充-黑色代表可见部分,白色代表透明。

Your mask.png should be non-transparent image filled like inverted alpha - black for visible parts, white for transparent.