iOS 微信聊天訊息的圖片氣泡實現

ppsheep發表於2016-11-02

歡迎大家關注我的公眾號,我會定期分享一些我在專案中遇到問題的解決辦法和一些iOS實用的技巧,現階段主要是整理出一些基礎的知識記錄下來

iOS 微信聊天訊息的圖片氣泡實現

文章也會同步更新到我的部落格:
ppsheep.com

在IM應用當中,我們的聊天頁面再熟悉不過了,在聊天頁面中每條訊息都有一個背景氣泡,但是在微信中呢,圖片的背景氣泡卻沒有,而是圖片本身成為了一個氣泡的樣式,我們來看看微信的樣式是怎麼樣的,今天就來實現這樣一種樣式:

iOS 微信聊天訊息的圖片氣泡實現

其實實現起來還是很簡單的,說一下思路:

我準備用CAShapeLayer來實現,具體的做法就是:

  • 準備一張這種氣泡效果的背景圖,然後將這個氣泡圖做成一個layer例項,並且通過contentCenter或者contentRect拉伸至我們需要展示的UIImageView大小
  • 將做好的layer例項賦給UIImageView
  • 再將imageview賦上圖片就行了

廢話少說 我們上程式碼

準備一張這種圖片

iOS 微信聊天訊息的圖片氣泡實現

然後 神奇的事情來了 幾行程式碼搞定

CGRect frame = CGRectMake(100, 100, 100, 150);

UIImageView *image = [[UIImageView alloc] initWithFrame:frame];

CAShapeLayer *layer = [CAShapeLayer layer];

layer.frame = image.bounds;
layer.contents = (id)[UIImage imageNamed:@"chat_box_blue"].CGImage;
layer.contentsCenter = CGRectMake(0.5, 0.5, 0.1, 0.1);
layer.contentsScale = [UIScreen mainScreen].scale;

image.layer.mask = layer;
image.layer.frame = image.frame;
image.image = [UIImage imageNamed:@"image"];
[self.view addSubview:image];複製程式碼

看一下效果

iOS 微信聊天訊息的圖片氣泡實現

相關文章