| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- //
- // JCMessageAvatarView.swift
- // JChat
- //
- // Created by deng on 10/04/2017.
- // Copyright © 2017 HXHG. All rights reserved.
- //
- import UIKit
- open class JCMessageAvatarView: UIImageView, JCMessageContentViewType {
-
- weak var delegate: JCMessageDelegate?
-
- public override init(image: UIImage?) {
- super.init(image: image)
- _commonInit()
- }
- public override init(image: UIImage?, highlightedImage: UIImage?) {
- super.init(image: image, highlightedImage: highlightedImage)
- _commonInit()
- }
- public override init(frame: CGRect) {
- super.init(frame: frame)
- _commonInit()
- }
- public required init?(coder aDecoder: NSCoder) {
- super.init(coder: aDecoder)
- _commonInit()
- }
-
- open func apply(_ message: JCMessageType) {
- self.message = message
- if message.senderAvator != nil {
- image = message.senderAvator
- return
- }
- weak var weakSelf = self
- message.sender?.thumbAvatarData({ (data, id, error) in
- if let data = data {
- weakSelf?.image = UIImage(data: data)
- } else {
- self.image = self.userDefaultIcon
- }
- })
- }
-
- private var message: JCMessageType!
- private lazy var userDefaultIcon = UIImage.loadImage("com_icon_user_36")
-
- private func _commonInit() {
- image = userDefaultIcon
- isUserInteractionEnabled = true
- layer.masksToBounds = true
- let tapGR = UITapGestureRecognizer(target: self, action: #selector(_tapHandler))
- self.addGestureRecognizer(tapGR)
- let longTapGesture = UILongPressGestureRecognizer(target: self, action: #selector(_longTap(_:)))
- longTapGesture.minimumPressDuration = 0.4
- addGestureRecognizer(longTapGesture)
- }
-
- @objc func _tapHandler(sender:UITapGestureRecognizer) {
- delegate?.tapAvatarView?(message: message)
- }
- @objc func _longTap(_ gestureRecognizer: UILongPressGestureRecognizer) {
- if gestureRecognizer.state == .began {
- delegate?.longTapAvatarView?(message: message)
- }
- }
- }
|