- (void)viewDidLoad {
[super viewDidLoad];
//创建图片,并设置拉伸方式
UIImage *image = [[UIImage imageNamed:@"chat_sender_bg"] stretchableImageWithLeftCapWidth:33.0f topCapHeight:33.0f];
//这个imageView是为了得到 蒙版图片
//因为如果直接用image做蒙版会拉伸图片,没有找到好的解决方式,所以现将image赋给imageView,让后再将imageView转换为图片,将生成的图片作为蒙版
UIImageView *imageV = [[UIImageView alloc]init];
imageV.frame = _imageView.frame;
imageV.image = image;
//添加遮罩
CALayer *maskLayer = [CALayer layer];
maskLayer.frame = CGRectMake(0, 0,_imageView.frame.size.width,_imageView.frame.size.height);
UIImage *maskImage = [self makeImageWithView:imageV withSize:imageV.frame.size];
maskLayer.contents = (__bridge id)maskImage.CGImage;
_imageView.layer.mask = maskLayer;
}
//将view转image
- (UIImage *)makeImageWithView:(UIView *)view withSize:(CGSize)size
{
// 下面方法,第一个参数表示区域大小。第二个参数表示是否是非透明的。如果需要显示半透明效果,需要传NO,否则传YES。第三个参数就是屏幕密度了,关键就是第三个参数 [UIScreen mainScreen].scale。
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
view转image参考:http://blog.csdn.net/lixianyue1991/article/details/52640093
图层蒙版参考:https://github.com/AttackOnDobby/iOS-Core-Animation-Advanced-Techniques/blob/master/4-视觉效果/4-视觉效果.md


网友评论