最近做有关 发送图片的功能。微信显示的图片 使用气泡遮罩出来的。。而且图片尺寸也不止一种。
既然UIImagView 可以拉伸图片,设置遮罩的CALayer 的content 可不可以。
关键CALayer这两个属性:
contentsCenter 跟 图片拉伸原理相同 不过是根据比例
contentsGravity 设置拉伸方法
contentsScale 内容的分变率。== img.scale 应该设置等于 content 图片的分辨率。之前忘了设置这个。坑了好久。
具体可以搜下这三个资料;
上代码:
mask_pic.contents = (__bridge id)[maskImg CGImage]; mask_pic.frame = CGRectMake(0, 0, _imgView.width,_imgView.height); maskImg = [UIImage imageNamed:@"chatBg_left"]; mask_pic.contentsCenter = CGRectMake(18.0/maskImg.size.width, 24.0/maskImg.size.height, (maskImg.size.width - (10.0 +18.0))/maskImg.size.width , (maskImg.size.height - (24.0 + 10.0))/maskImg.size.height); //拉伸 mask_pic.contentsGravity = kCAGravityResize; mask_pic.contentsScale = maskImg.scale; _imgView.backgroundColor = [UIColor blackColor]; _imgView.layer.mask = mask_pic;