1. 说明
要实现类似微信聊天气泡功能,主要有以下几个主要技术点需要实现:
- 背景图图拉伸后不变形
- UILabel自适应宽度和高度
2. 背景图图拉伸后不变形
要实现背景图拉升不变形,就要设置只让指定部位拉升,如果是在Android中,需要专门做.9图来设置只让指定部位拉升,而iOS提供的方法就简单得多,只需要设置几个值就可以。
UIEdgeInsets insets = UIEdgeInsetsMake(28, 10, 5, 5); // 上、左、下、右
UIImage *image = [UIImage imageNamed:@"bg_speech_bubble_response"];
image = [image resizableImageWithCapInsets:insets resizingMode:UIImageResizingModeStretch];
[self.bgImage setImage:image];
我们只要让其做到不拉伸小三角、不拉伸圆角边就可以,这样无论怎么拉伸都不会影响图片的形状。
3. UILabel自适应宽度和高度
要实现宽度和高度自适应内容也很简单,只需要简单设置即可:
_label.lineBreakMode = NSLineBreakByWordWrapping;
_label.numberOfLines = 0;
_label.preferredMaxLayoutWidth = ScreenWidth;
- lineBreakMode 设置可以多行显示
- numberOfLines 这个用来指定行数,如果为0则不限定行数
- preferredMaxLayoutWidth 到达指定宽度后开始换行
4. 总结
感觉实现聊天气泡最主要是这两个技术点,其它的应该不是什么问题,如果大家觉得还有什么技术点不太明确,可以在评论中留言,后续可以在博客中添加技术补充项~