LNFeedCommentCell.swift 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. //
  2. // LNFeedCommentCell.swift
  3. // Gami
  4. //
  5. // Created by OneeChan on 2026/3/3.
  6. //
  7. import Foundation
  8. import UIKit
  9. import SnapKit
  10. class LNFeedCommentCell: UITableViewCell {
  11. private let avatar = UIImageView()
  12. private let nameLabel = UILabel()
  13. private let contentLabel = UILabel()
  14. private let timeLabel = UILabel()
  15. override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
  16. super.init(style: style, reuseIdentifier: reuseIdentifier)
  17. setupViews()
  18. }
  19. func update(_ comment: LNFeedCommentVO) {
  20. avatar.sd_setImage(with: URL(string: comment.avatar))
  21. nameLabel.text = comment.nickname
  22. timeLabel.text = TimeInterval(comment.createdAt / 1_000).tencentIMTimeDesc
  23. contentLabel.text = comment.textContent
  24. }
  25. required init?(coder: NSCoder) {
  26. fatalError("init(coder:) has not been implemented")
  27. }
  28. }
  29. extension LNFeedCommentCell {
  30. private func setupViews() {
  31. avatar.layer.cornerRadius = 21
  32. avatar.clipsToBounds = true
  33. contentView.addSubview(avatar)
  34. avatar.snp.makeConstraints { make in
  35. make.leading.equalToSuperview().offset(16)
  36. make.top.equalToSuperview()
  37. make.width.height.equalTo(42)
  38. }
  39. let stackView = UIStackView()
  40. stackView.axis = .vertical
  41. stackView.spacing = 4
  42. contentView.addSubview(stackView)
  43. stackView.snp.makeConstraints { make in
  44. make.top.equalToSuperview()
  45. make.trailing.equalToSuperview().offset(-16)
  46. make.leading.equalTo(avatar.snp.trailing).offset(10)
  47. make.bottom.equalToSuperview().offset(-22)
  48. }
  49. nameLabel.font = .heading_h4
  50. nameLabel.textColor = .text_5
  51. stackView.addArrangedSubview(nameLabel)
  52. contentLabel.font = .body_m
  53. contentLabel.textColor = .text_5
  54. contentLabel.numberOfLines = 0
  55. stackView.addArrangedSubview(contentLabel)
  56. timeLabel.font = .body_xs
  57. timeLabel.textColor = .text_3
  58. stackView.addArrangedSubview(timeLabel)
  59. }
  60. }