JCSingleSettingCell.swift 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. //
  2. // JCSingleSettingCell.swift
  3. // JChat
  4. //
  5. // Created by deng on 2017/4/27.
  6. // Copyright © 2017年 HXHG. All rights reserved.
  7. //
  8. import UIKit
  9. @objc public protocol JCSingleSettingCellDelegate: NSObjectProtocol {
  10. @objc optional func singleSettingCell(clickAddButton button: UIButton)
  11. @objc optional func singleSettingCell(clickAvatorButton button: UIButton)
  12. }
  13. class JCSingleSettingCell: UITableViewCell {
  14. weak var delegate: JCSingleSettingCellDelegate?
  15. required init?(coder aDecoder: NSCoder) {
  16. super.init(coder: aDecoder)
  17. _init()
  18. }
  19. override func awakeFromNib() {
  20. super.awakeFromNib()
  21. _init()
  22. }
  23. private lazy var avatorButton: UIButton = {
  24. let avatorButton = UIButton()
  25. avatorButton.setBackgroundImage(UIImage.loadImage("com_icon_user_50"), for: .normal)
  26. avatorButton.addTarget(self, action: #selector(_clickAvator), for: .touchUpInside)
  27. return avatorButton
  28. }()
  29. private lazy var addButton: UIButton = {
  30. let addButton = UIButton()
  31. addButton.setBackgroundImage(UIImage.loadImage("com_icon_single_add"), for: .normal)
  32. addButton.setBackgroundImage(UIImage.loadImage("com_icon_single_add_per"), for: .highlighted)
  33. addButton.addTarget(self, action: #selector(_clickAdd), for: .touchUpInside)
  34. return addButton
  35. }()
  36. private lazy var nickname: UILabel = {
  37. let nickname = UILabel()
  38. nickname.font = UIFont.systemFont(ofSize: 12)
  39. nickname.textAlignment = .center
  40. nickname.textColor = UIColor(netHex: 0x2C2C2C)
  41. return nickname
  42. }()
  43. func bindData(_ user: JMSGUser) {
  44. nickname.text = user.displayName()
  45. user.thumbAvatarData { (data, id, error) in
  46. if data != nil {
  47. let image = UIImage(data: data!)
  48. self.avatorButton.setBackgroundImage(image, for: .normal)
  49. }
  50. }
  51. }
  52. private func _init() {
  53. contentView.addSubview(avatorButton)
  54. //contentView.addSubview(addButton)
  55. contentView.addSubview(nickname)
  56. addConstraint(_JCLayoutConstraintMake(avatorButton, .left, .equal, contentView, .left, 20))
  57. addConstraint(_JCLayoutConstraintMake(avatorButton, .width, .equal, nil, .notAnAttribute, 50))
  58. addConstraint(_JCLayoutConstraintMake(avatorButton, .height, .equal, nil, .notAnAttribute, 50))
  59. addConstraint(_JCLayoutConstraintMake(avatorButton, .top, .equal, contentView, .top, 16.5))
  60. addConstraint(_JCLayoutConstraintMake(nickname, .left, .equal, avatorButton, .left))
  61. addConstraint(_JCLayoutConstraintMake(nickname, .width, .equal, avatorButton, .width))
  62. addConstraint(_JCLayoutConstraintMake(nickname, .height, .equal, nil, .notAnAttribute, 16.5))
  63. addConstraint(_JCLayoutConstraintMake(nickname, .top, .equal, avatorButton, .bottom, 3))
  64. // addConstraint(_JCLayoutConstraintMake(addButton, .left, .equal, avatorButton, .right, 20))
  65. // addConstraint(_JCLayoutConstraintMake(addButton, .width, .equal, nil, .notAnAttribute, 50))
  66. // addConstraint(_JCLayoutConstraintMake(addButton, .height, .equal, nil, .notAnAttribute, 50))
  67. // addConstraint(_JCLayoutConstraintMake(addButton, .top, .equal, contentView, .top, 16.5))
  68. }
  69. @objc func _clickAvator() {
  70. delegate?.singleSettingCell?(clickAvatorButton: avatorButton)
  71. }
  72. @objc func _clickAdd() {
  73. delegate?.singleSettingCell?(clickAddButton: addButton)
  74. }
  75. }