我使用的是Swift 1.2,我的目标是在静态UIImage上设置图像蒙版的动画.我实现的是一个快速版本的掩盖我最初在Objective-C中找到的图像.
func maskImage(image: UIImage, mask: UIImage) -> UIImage! {
let maskRef = mask.CGImage;
let mask = CGImageMaskCreate(
CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), nil, false);
let masked = CGImageCreateWithMask(image.CGImage, mask);
let retImage = UIImage(CGImage: masked);
return retImage;
}
Run Code Online (Sandbox Code Playgroud)
它很棒!然而,将它付诸实践是我的挑战.
有没有办法迭代地应用具有不同水平偏移的掩码或更好的方法来完全解决这个问题 - 也许使用CALayer实现?
谢谢你的帮助!
编辑:根据发布的答案,我补充说:
let image = UIImage(named: "clouds");
let imageView = UIImageView(image: image);
let layer = CALayer();
layer.contents = UIImage(named: "alpha-mask")?.CGImage;
layer.bounds = CGRectMake(0, 0, image.size.width, image.size.height);
// For other folks learning, this did not work
//let …Run Code Online (Sandbox Code Playgroud)