JCContacterCell.swift 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. //
  2. // JCContacterCell.swift
  3. // JChat
  4. //
  5. // Created by deng on 2017/3/14.
  6. // Copyright © 2017年 HXHG. All rights reserved.
  7. //
  8. import UIKit
  9. class JCContacterCell: JCTableViewCell {
  10. var isShowBadge: Bool {
  11. get {
  12. return !redPoin.isHidden
  13. }
  14. set {
  15. redPoin.isHidden = !newValue
  16. }
  17. }
  18. var icon: UIImage? {
  19. get {
  20. return avatorView.image
  21. }
  22. set {
  23. avatorView.image = newValue
  24. }
  25. }
  26. var title: String? {
  27. get {
  28. return usernameLabel.text
  29. }
  30. set {
  31. usernameLabel.text = newValue
  32. }
  33. }
  34. override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
  35. super.init(style: style, reuseIdentifier: reuseIdentifier)
  36. _init()
  37. }
  38. required init?(coder aDecoder: NSCoder) {
  39. super.init(coder: aDecoder)
  40. _init()
  41. }
  42. override func awakeFromNib() {
  43. super.awakeFromNib()
  44. _init()
  45. }
  46. private lazy var avatorView: UIImageView = UIImageView()
  47. private lazy var usernameLabel: UILabel = UILabel()
  48. private lazy var redPoin: UILabel = UILabel()
  49. public func bindDate(_ user : JMSGUser) {
  50. self.title = user.displayName()
  51. let urlstr = AppDelegate.o2Collect.generateURLWithAppContextKey(ContactContext.contactsContextKeyV2, query: ContactContext.personIconByNameQueryV2, parameter: ["##name##":user.username as AnyObject])
  52. let url = URL(string: urlstr!)
  53. let bound = self.avatorView.bounds
  54. if bound.width <= 0 || bound.height <= 0 {
  55. self.avatorView.bounds = CGRect(x: 0, y: 0, w: 50, h: 50)
  56. }
  57. self.avatorView.hnk_setImageFromURL(url!)
  58. // user.thumbAvatarData({ (data, name, error) in
  59. // if let data = data {
  60. // let image = UIImage(data: data)
  61. // self.icon = image
  62. // } else {
  63. // self.icon = UIImage.loadImage("com_icon_user_36")
  64. // }
  65. // })
  66. }
  67. public func bindDateWithGroup(group : JMSGGroup) {
  68. title = group.displayName()
  69. group.thumbAvatarData { (data, id, error) in
  70. if let data = data {
  71. self.icon = UIImage(data: data)
  72. } else {
  73. self.icon = UIImage.loadImage("com_icon_group_36")
  74. }
  75. }
  76. }
  77. //MARK: - private func
  78. private func _init() {
  79. usernameLabel.textColor = UIColor(netHex: 0x2c2c2c)
  80. usernameLabel.font = UIFont.systemFont(ofSize: 14)
  81. usernameLabel.backgroundColor = .white
  82. usernameLabel.layer.masksToBounds = true
  83. redPoin.textAlignment = .center
  84. redPoin.text = ""
  85. redPoin.layer.cornerRadius = 4.0
  86. redPoin.layer.masksToBounds = true
  87. redPoin.isHidden = true
  88. redPoin.layer.backgroundColor = UIColor.red.cgColor
  89. contentView.addSubview(avatorView)
  90. contentView.addSubview(usernameLabel)
  91. contentView.addSubview(redPoin)
  92. addConstraint(_JCLayoutConstraintMake(avatorView, .left, .equal, contentView, .left, 15))
  93. addConstraint(_JCLayoutConstraintMake(avatorView, .top, .equal, contentView, .top, 9.5))
  94. addConstraint(_JCLayoutConstraintMake(avatorView, .width, .equal, nil, .notAnAttribute, 36))
  95. addConstraint(_JCLayoutConstraintMake(avatorView, .height, .equal, nil, .notAnAttribute, 36))
  96. addConstraint(_JCLayoutConstraintMake(usernameLabel, .left, .equal, avatorView, .right, 11))
  97. addConstraint(_JCLayoutConstraintMake(usernameLabel, .top, .equal, contentView, .top, 19.5))
  98. addConstraint(_JCLayoutConstraintMake(usernameLabel, .right, .equal, contentView, .right, -15))
  99. addConstraint(_JCLayoutConstraintMake(usernameLabel, .height, .equal, nil, .notAnAttribute, 16))
  100. addConstraint(_JCLayoutConstraintMake(redPoin, .left, .equal, avatorView, .right, -5))
  101. addConstraint(_JCLayoutConstraintMake(redPoin, .top, .equal, avatorView, .top, -3))
  102. addConstraint(_JCLayoutConstraintMake(redPoin, .height, .equal, nil, .notAnAttribute, 8))
  103. addConstraint(_JCLayoutConstraintMake(redPoin, .width, .equal, nil, .notAnAttribute, 8))
  104. }
  105. }