Guest User

Untitled

a guest
Dec 10th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.72 KB | None | 0 0
  1. import UIKit
  2. import FirebaseAuth
  3. import FirebaseDatabase
  4.  
  5. class ChatCell: UICollectionViewCell {
  6.  
  7. var message: Message? {
  8. didSet {
  9. guard let message = message else { return }
  10.  
  11. self.chatMessageTextView.text = message.message
  12.  
  13. setupToAndFromViews()
  14. }
  15. }
  16.  
  17.  
  18. required init?(coder aDecoder: NSCoder) {
  19. fatalError("init(coder:) has not been implemented")
  20. }
  21.  
  22. override init(frame: CGRect) {
  23. super.init(frame: frame)
  24.  
  25. backgroundColor = .clear
  26.  
  27.  
  28.  
  29. }
  30.  
  31.  
  32. func setupToAndFromViews() {
  33. guard let message = message else { return }
  34.  
  35. addSubview(userImageView)
  36. addSubview(userTimeLabel)
  37. addSubview(chatMessageTextView)
  38.  
  39. self.userImageView.anchor(top: self.topAnchor, left: self.leftAnchor, bottom: nil, right: nil, paddingTop: 8, paddingLeft: 8, paddingBottom: 0, paddingRight: 0, width: 40, height: 40)
  40.  
  41. self.userTimeLabel.anchor(top: userImageView.topAnchor, left: userImageView.rightAnchor, bottom: nil, right: self.rightAnchor, paddingTop: 0, paddingLeft: 8, paddingBottom: 0, paddingRight: 8, width: 0, height: 18)
  42.  
  43. self.chatMessageTextView.anchor(top: userTimeLabel.bottomAnchor, left: userImageView.rightAnchor, bottom: self.bottomAnchor, right: self.rightAnchor, paddingTop: 0, paddingLeft: 4, paddingBottom: 0, paddingRight: 0, width: 0, height: 0)
  44.  
  45. Database.fetchUserWithUID(uid: message.fromId) { (user) in
  46. self.userImageView.loadImage(urlString: user.profileImageUrl)
  47.  
  48. let timeAgo = Date(timeIntervalSince1970: message.timestamp).timeAgoDisplay()
  49.  
  50. self.userTimeLabel.text = "\(user.name) • \(timeAgo)"
  51. }
  52.  
  53.  
  54. }
  55.  
  56.  
  57. let userImageView: CustomImageView = {
  58. let imageView = CustomImageView()
  59. imageView.image = #imageLiteral(resourceName: "ezdrive_placeholderimg")
  60. imageView.contentMode = .scaleAspectFill
  61. imageView.layer.cornerRadius = 20
  62. imageView.clipsToBounds = true
  63. return imageView
  64. }()
  65.  
  66. let userTimeLabel: UILabel = {
  67. let label = UILabel()
  68. label.text = "Username • 9 hours ago"
  69. label.font = UIFont.boldSystemFont(ofSize: 13)
  70. label.textColor = .darkGray
  71. return label
  72. }()
  73.  
  74. let chatMessageTextView: UITextView = {
  75. let textView = UITextView()
  76. textView.backgroundColor = .clear
  77. textView.text = "MESSAGE HERE"
  78. textView.font = UIFont.systemFont(ofSize: 14)
  79. textView.textColor = .black
  80. textView.isEditable = false
  81. textView.isScrollEnabled = false
  82. return textView
  83. }()
  84.  
  85.  
  86. }
Add Comment
Please, Sign In to add comment