MessageActivityTableCell.swift 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. //
  2. // MessageActivityTableCell.swift
  3. // RainbowPlanet
  4. //
  5. // Created by Christopher on 2019/6/11.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. // 星球活动のCell
  8. import UIKit
  9. import RxSwift
  10. import RxCocoa
  11. class MessageActivityTableCell: UITableViewCell {
  12. let disposeBag = DisposeBag()
  13. typealias ActivityClosure = () -> Void
  14. var activityClosure : ActivityClosure?
  15. class func cellWith(tableView:UITableView,indexPath:IndexPath) -> MessageActivityTableCell {
  16. let ID = "MessageActivityTableCell"
  17. tableView.register(MessageActivityTableCell.self, forCellReuseIdentifier: ID)
  18. let cell : MessageActivityTableCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! MessageActivityTableCell
  19. cell.indexPath = indexPath
  20. return cell
  21. }
  22. override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
  23. super.init(style: style, reuseIdentifier: reuseIdentifier)
  24. setupViews()
  25. setupLayouts()
  26. }
  27. required init?(coder aDecoder: NSCoder) {
  28. fatalError("init(coder:) has not been implemented")
  29. }
  30. var indexPath: IndexPath? {
  31. didSet {
  32. }
  33. }
  34. //MRAK: - 设置View
  35. private func setupViews() {
  36. self.selectionStyle = .none
  37. backgroundColor = kf7f8faColor
  38. addSubview(timeLabel)
  39. addSubview(activityView)
  40. activityView.addSubview(actImageView)
  41. activityView.addSubview(titleLabel)
  42. activityView.addSubview(subLabel)
  43. activityView.addSubview(itemButton)
  44. }
  45. private func setupLayouts() {
  46. timeLabel.snp.makeConstraints { (make) in
  47. make.top.equalTo(16)
  48. make.centerX.equalToSuperview()
  49. make.width.equalTo(90)
  50. make.height.equalTo(20)
  51. }
  52. activityView.snp.makeConstraints { (make) in
  53. make.top.equalTo(timeLabel.snp_bottom).offset(16)
  54. make.left.equalTo(23)
  55. make.right.equalTo(-23)
  56. make.height.equalTo(160)
  57. }
  58. actImageView.snp.makeConstraints { (make) in
  59. make.edges.equalToSuperview()
  60. }
  61. titleLabel.snp.makeConstraints { (make) in
  62. make.top.equalTo(103)
  63. make.left.equalTo(14)
  64. make.right.equalTo(-14)
  65. make.height.equalTo(21)
  66. }
  67. subLabel.snp.makeConstraints { (make) in
  68. make.top.equalTo(titleLabel.snp_bottom).offset(6)
  69. make.left.equalTo(titleLabel.snp_left)
  70. make.right.equalTo(titleLabel.snp_right)
  71. make.height.equalTo(17)
  72. }
  73. itemButton.snp.makeConstraints { (make) in
  74. make.edges.equalToSuperview()
  75. }
  76. }
  77. private lazy var timeLabel: UILabel = {
  78. let timeLabel = UILabel()
  79. timeLabel.backgroundColor = kRGBAColor(r: 0/255.0, g: 0/255.0, b: 0/255.0, a: 0.1)
  80. timeLabel.text = "05-16 20:03"
  81. timeLabel.textColor = kffffffColor
  82. timeLabel.font = kRegularFont12
  83. timeLabel.textAlignment = .center
  84. timeLabel.cornerRadius = 2
  85. timeLabel.masksToBounds = true
  86. return timeLabel
  87. }()
  88. private lazy var activityView: UIView = {
  89. let activityView = UIView()
  90. activityView.cornerRadius = 4
  91. activityView.masksToBounds = true
  92. return activityView
  93. }()
  94. lazy var actImageView : UIImageView = {
  95. let actImageView = UIImageView()
  96. actImageView.image = kImage(name: "page05")
  97. return actImageView
  98. }()
  99. private lazy var titleLabel: UILabel = {
  100. let titleLabel = UILabel()
  101. titleLabel.text = "我就是一个用来测一测的Title"
  102. titleLabel.textColor = kffffffColor
  103. titleLabel.font = kRegularFont15
  104. titleLabel.textAlignment = .left
  105. return titleLabel
  106. }()
  107. private lazy var subLabel: UILabel = {
  108. let subLabel = UILabel()
  109. subLabel.text = "活动时间:2019/5/19~2019/5/20"
  110. subLabel.textColor = kffffffColor
  111. subLabel.font = kRegularFont12
  112. subLabel.textAlignment = .left
  113. return subLabel
  114. }()
  115. private lazy var itemButton: UIButton = {
  116. let itemButton = UIButton(type: UIButton.ButtonType.custom)
  117. itemButton.rx.tap.subscribe(onNext: { [weak self] (data) in
  118. if let activityClosure = self?.activityClosure {
  119. activityClosure()
  120. }
  121. }).disposed(by: disposeBag)
  122. return itemButton
  123. }()
  124. }