iOS气泡效果(swift3)

class ViewController: UIViewController {
  
  let chatV1: UIImageView = {
    let iv = UIImageView()
    iv.frame = CGRect(x: 0, y: 50, width: 200, height: 170)
    iv.image = UIImage(named: "twg")
    return iv
  }()
  override func viewDidLoad() {
    super.viewDidLoad()
    self.chatV1.bubble()
    view.addSubview(self.chatV1)
  }
}
extension UIView {
  enum BubbleDirection {
    case left, right
  }
  func bubble(_ direction: BubbleDirection = .left) {
    let iv = UIImageView()
    iv.frame = CGRect(origin: .zero, size: bounds.size)
    let imageDirName = direction == .left ? "bubble-left" : "bubble-right"
    iv.image = UIImage(named: imageDirName)?
      .resizableImage(withCapInsets: UIEdgeInsetsMake(3, 3, 3, 3),
                      resizingMode: .stretch)
    self.layer.mask = iv.layer
  }
}
1.png
bubble-left.png

之前这个红色气泡大小是512*512的,被我改成了50*50
气泡原图特别大,而需要被气泡效果的图片比它小,则会出现严重的畸形。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,252评论 4 61
  • 从main文件开始说起程序启动分为两类:1.有storyboard 2.没有storyboard (一)有stor...
    程序媛coco阅读 319评论 0 3
  • 東哥是我的娃儿,17岁,今年上高一,个头1.80了,每次与他说话都要仰着头。帅气、稚嫩。 2009年我开始记录与東...
    村妮子阅读 285评论 0 2
  • 又一大套路,价格锚点理解是一个用来对比的参照物,用来让客户购买自己想卖出去的炮灰,哈哈,才发现自己不过是买东西还是...
    森蒂薄荷阅读 578评论 2 1