iOS 最新仿微信氣泡實現
阿新 • • 發佈:2019-01-27
最近公司做IM,氣泡實現想要用仿造微信,各種詞條百度無果,vpn也過期了無法google,但是最後總算找到些苗頭http://blog.csdn.net/johnzhjfly/article/details/41175015,在這基礎上呈上我的簡單實現,希望對你有所幫助。
在這裡感謝給了我幫助的博主!!!
先放上效果圖吧,否不符合你的口味更直觀些:
關鍵程式碼:
- (void)createSubviewToRight:(BOOL)right{
_maskLayer = nil;
_contentLayer = nil;
CGRect rect = right ? CGRectMake(0.3 , 0.7, 0, 0) : CGRectMake(0.7, 0.7, 0, 0);
NSString * iconName = right ? @"icon_bubble_right" : @"icon_bubble_left";
UIImage * image = [UIImage imageNamed:iconName];
_maskLayer = [CAShapeLayer layer];
_maskLayer.frame = self.bounds;
//關於contentCenter可以參考文章https://www.mgenware.com/blog/?p=489
_maskLayer.contentsCenter =rect;
//關於角的大小,一種簡單的方法就是使用尺寸比較大的圖icon_bubble_right和icon_bubble_left
_maskLayer.contents = (id)image.CGImage;
_maskLayer.contentsScale = [UIScreen mainScreen].scale; //非常關鍵設定自動拉伸的效果且不變形
_contentLayer = [CALayer layer];
_contentLayer.mask = _maskLayer;
_contentLayer.frame = self.bounds;
[self.layer addSublayer:_contentLayer];
}