-(void)layoutSubviews
{
[super layoutSubviews];
CAShapeLayer * _maskLayer = [CAShapeLayer layer];
_maskLayer.fillColor = [UIColor blackColor].CGColor;
_maskLayer.strokeColor = [UIColor clearColor].CGColor;
_maskLayer.frame = self.bounds;
//(0.5,0.5,0.1,0.1)
_maskLayer.contentsCenter =CGRectMake(0.5,0.6,0.1,0.1);
_maskLayer.contentsScale = [UIScreen mainScreen].scale;
//非常关键设置自动拉伸的效果且不变形
if (self.model.isSender) { _maskLayer.contents = (id)[UIImage imageNamed:BUBBLE_RIGHT_IMAGE_NAME].CGImage;//气泡聊天图片 消息发送者 右侧气泡
}else{
_maskLayer.contents = (id)[UIImage imageNamed:BUBBLE_LEFT_IMAGE_NAME].CGImage;//气泡聊天图片 消息接受者者 左侧气泡
}
self.imageView.layer.mask = _maskLayer;
self.imageView.layer.frame = self.bounds;
}
本文介绍了一种在iOS应用中实现类似微信聊天界面中图片气泡显示效果的方法。通过使用CAShapeLayer来创建气泡形状,并将其作为UIImageView的遮罩层,实现了图片在不同位置的气泡显示。具体包括如何根据消息发送方向调整气泡位置,以及如何保持图片的拉伸不变形。
1014

被折叠的 条评论
为什么被折叠?



