仿微信图片消息遮罩

- (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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,519评论 5 13
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,711评论 6 30
  • 1、设置UILabel行间距 NSMutableAttributedString* attrString = [[...
    十年一品温如言1008阅读 5,711评论 0 3
  • 最近发现CALayer能实现的东西有很多,而且都很有意思,效果不错。今天写了一个遮罩的和一个图片渐变的功能。 先看...
    HelloAda阅读 5,654评论 2 6
  • 1.自定义控件 a.继承某个控件 b.重写initWithFrame方法可以设置一些它的属性 c.在layouts...
    圍繞的城阅读 8,819评论 2 4