歡迎大家關注我的公眾號,我會定期分享一些我在專案中遇到問題的解決辦法和一些iOS實用的技巧,現階段主要是整理出一些基礎的知識記錄下來
文章也會同步更新到我的部落格:
ppsheep.com
在IM應用當中,我們的聊天頁面再熟悉不過了,在聊天頁面中每條訊息都有一個背景氣泡,但是在微信中呢,圖片的背景氣泡卻沒有,而是圖片本身成為了一個氣泡的樣式,我們來看看微信的樣式是怎麼樣的,今天就來實現這樣一種樣式:
其實實現起來還是很簡單的,說一下思路:
我準備用CAShapeLayer來實現,具體的做法就是:
- 準備一張這種氣泡效果的背景圖,然後將這個氣泡圖做成一個layer例項,並且通過contentCenter或者contentRect拉伸至我們需要展示的UIImageView大小
- 將做好的layer例項賦給UIImageView
- 再將imageview賦上圖片就行了
廢話少說 我們上程式碼
準備一張這種圖片
然後 神奇的事情來了 幾行程式碼搞定
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];複製程式碼
看一下效果