我听说可以用黑/白图像掩盖视图,其中黑色表示完全透明,白色表示视图可见。与clipsToBounds的最大区别在于视图可以剪切成有趣的形状,如圆形或星形。我怎么能这样做?
答案 0 :(得分:4)
查看函数
void CGContextClipToMask (
CGContextRef c,
CGRect rect,
CGImageRef mask
);
如果我理解正确,它会完全符合您的要求。
答案 1 :(得分:4)
CGImageRef maskRef = <some cgimage>;
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef), CGImageGetHeight(maskRef), CGImageGetBitsPerComponent(maskRef), CGImageGetBitsPerPixel(maskRef), CGImageGetBytesPerRow(maskRef), CGImageGetDataProvider(maskRef), NULL, YES);
CGContextClipToMask(context, maskRect, mask);
CGImageRelease(mask);
答案 2 :(得分:1)
CGImageRef maskImage = <Black-White Image>
const CGFloat components[6] = {0,0,0,0,0,0}; // mask black color
CGImageRef mask = CGImageCreateWithMaskingColors(maskImage, components);
CGContextClipToMask(ctx, mask)
// draw images will be masked