|
@@ -0,0 +1,410 @@
|
|
|
+//
|
|
|
+// CommunityFollowStatusTableViewCell.swift
|
|
|
+// RainbowPlanet
|
|
|
+//
|
|
|
+// Created by 南鑫林 on 2019/6/12.
|
|
|
+// Copyright © 2019 RainbowPlanet. All rights reserved.
|
|
|
+//
|
|
|
+
|
|
|
+import UIKit
|
|
|
+import RxSwift
|
|
|
+
|
|
|
+class CommunityFollowStatusTableViewCell: UITableViewCell {
|
|
|
+
|
|
|
+ let disposeBag = DisposeBag()
|
|
|
+
|
|
|
+ class func cellWith(tableView:UITableView,indexPath:IndexPath) -> CommunityFollowStatusTableViewCell {
|
|
|
+ let ID = "CommunityFollowStatusTableViewCell"
|
|
|
+ tableView.register(CommunityFollowStatusTableViewCell.self, forCellReuseIdentifier: ID)
|
|
|
+ let cell : CommunityFollowStatusTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! CommunityFollowStatusTableViewCell
|
|
|
+ cell.indexPath = indexPath
|
|
|
+ return cell
|
|
|
+ }
|
|
|
+
|
|
|
+ override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
|
|
|
+ super.init(style: style, reuseIdentifier: reuseIdentifier)
|
|
|
+ setupViews()
|
|
|
+ setupLayouts()
|
|
|
+ }
|
|
|
+
|
|
|
+ required init?(coder aDecoder: NSCoder) {
|
|
|
+ fatalError("init(coder:) has not been implemented")
|
|
|
+ }
|
|
|
+
|
|
|
+ var indexPath: IndexPath? {
|
|
|
+ didSet {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //MRAK: - 设置View
|
|
|
+ private func setupViews() {
|
|
|
+ self.selectionStyle = .none
|
|
|
+ addSubview(avatarButton)
|
|
|
+ addSubview(titleButton)
|
|
|
+ addSubview(timeStatusLabel)
|
|
|
+ addSubview(oneCardView)
|
|
|
+ oneCardView.addSubview(avatarOtherButton)
|
|
|
+ oneCardView.addSubview(titleOtherButton)
|
|
|
+ oneCardView.addSubview(followButton)
|
|
|
+ addSubview(twoCardView)
|
|
|
+ twoCardView.addSubview(twoTitleLabel)
|
|
|
+ twoCardView.addSubview(twoSubtitleLabel)
|
|
|
+ twoCardView.addSubview(twoGoImageView)
|
|
|
+ addSubview(threeCardView)
|
|
|
+ threeCardView.addSubview(threeTitleLabel)
|
|
|
+ threeCardView.addSubview(threeGoImageView)
|
|
|
+
|
|
|
+ addSubview(skittlesImageView)
|
|
|
+ addSubview(skittlesTitleLabel)
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private func setupLayouts() {
|
|
|
+ avatarButton.snp_makeConstraints { (make) in
|
|
|
+ make.top.equalTo(27)
|
|
|
+ make.left.equalTo(14)
|
|
|
+ make.size.equalTo(28)
|
|
|
+ }
|
|
|
+ titleButton.snp_makeConstraints { (make) in
|
|
|
+ make.centerY.equalTo(avatarButton)
|
|
|
+ make.left.equalTo(avatarButton.snp_right).offset(7)
|
|
|
+ }
|
|
|
+ timeStatusLabel.snp_makeConstraints { (make) in
|
|
|
+ make.centerY.equalTo(titleButton)
|
|
|
+ make.left.equalTo(titleButton.snp_right).offset(10)
|
|
|
+ }
|
|
|
+
|
|
|
+ oneCardView.snp_makeConstraints { (make) in
|
|
|
+ make.top.equalTo(avatarButton.snp_bottom).offset(10)
|
|
|
+ make.left.equalTo(14)
|
|
|
+ make.right.equalTo(-14)
|
|
|
+ make.height.equalTo(64)
|
|
|
+ }
|
|
|
+
|
|
|
+ avatarOtherButton.snp_makeConstraints { (make) in
|
|
|
+ make.centerY.equalToSuperview()
|
|
|
+ make.left.equalTo(15)
|
|
|
+ make.size.equalTo(40)
|
|
|
+ }
|
|
|
+
|
|
|
+ titleOtherButton.snp_makeConstraints { (make) in
|
|
|
+ make.centerY.equalTo(avatarOtherButton)
|
|
|
+ make.left.equalTo(avatarOtherButton.snp_right).offset(16)
|
|
|
+ }
|
|
|
+
|
|
|
+ followButton.snp_makeConstraints { (make) in
|
|
|
+ make.centerY.equalTo(avatarOtherButton)
|
|
|
+ make.right.equalToSuperview().offset(-15)
|
|
|
+ make.height.equalTo(26)
|
|
|
+ make.width.equalTo(64)
|
|
|
+ }
|
|
|
+
|
|
|
+ twoCardView.snp_makeConstraints { (make) in
|
|
|
+ make.top.equalTo(avatarButton.snp_bottom).offset(10)
|
|
|
+ make.left.equalTo(14)
|
|
|
+ make.right.equalTo(-14)
|
|
|
+ make.height.equalTo(70)
|
|
|
+ }
|
|
|
+
|
|
|
+ twoTitleLabel.snp_makeConstraints { (make) in
|
|
|
+ make.top.left.equalTo(15)
|
|
|
+ make.right.equalTo(-45)
|
|
|
+ make.height.equalTo(16)
|
|
|
+ }
|
|
|
+ twoSubtitleLabel.snp_makeConstraints { (make) in
|
|
|
+ make.bottom.equalTo(-15)
|
|
|
+ make.left.equalTo(15)
|
|
|
+ make.right.equalTo(-107)
|
|
|
+ make.height.equalTo(14)
|
|
|
+ }
|
|
|
+ twoGoImageView.snp_makeConstraints { (make) in
|
|
|
+ make.centerY.equalToSuperview()
|
|
|
+ make.right.equalTo(-15)
|
|
|
+ }
|
|
|
+
|
|
|
+ threeCardView.snp_makeConstraints { (make) in
|
|
|
+ make.top.equalTo(avatarButton.snp_bottom).offset(10)
|
|
|
+ make.left.equalTo(14)
|
|
|
+ make.right.equalTo(-14)
|
|
|
+ make.height.equalTo(60)
|
|
|
+ }
|
|
|
+
|
|
|
+ threeTitleLabel.snp_makeConstraints { (make) in
|
|
|
+ make.centerY.equalToSuperview()
|
|
|
+ make.left.equalTo(15)
|
|
|
+ make.right.equalTo(-45)
|
|
|
+ }
|
|
|
+ threeGoImageView.snp_makeConstraints { (make) in
|
|
|
+ make.centerY.equalToSuperview()
|
|
|
+ make.right.equalTo(-15)
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private lazy var avatarButton: UIButton = {
|
|
|
+ let avatarButton = UIButton(type: UIButton.ButtonType.custom)
|
|
|
+ avatarButton.setImage(kImage(name: "pic_preload"), for: UIControl.State.normal)
|
|
|
+ avatarButton.imageView?.contentMode = .scaleAspectFit
|
|
|
+ avatarButton.cornerRadius = 14
|
|
|
+ avatarButton.masksToBounds = true
|
|
|
+ avatarButton.rx.tap.subscribe(onNext: { (data) in
|
|
|
+ NotificationCenter.default.post(name: NSNotification.Name(rawValue: "CommunityUser"), object: nil)
|
|
|
+
|
|
|
+ }).disposed(by: disposeBag)
|
|
|
+ return avatarButton
|
|
|
+ }()
|
|
|
+
|
|
|
+ private lazy var titleButton: UIButton = {
|
|
|
+ let titleButton = UIButton(type: UIButton.ButtonType.custom)
|
|
|
+ titleButton.setTitle("用户昵称", for: UIControl.State.normal)
|
|
|
+ titleButton.setTitleColor(k333333Color, for: UIControl.State.normal)
|
|
|
+ titleButton.titleLabel?.font = kMediumFont14
|
|
|
+ titleButton.rx.tap.subscribe(onNext: { (data) in
|
|
|
+ NotificationCenter.default.post(name: NSNotification.Name(rawValue: "CommunityUser"), object: nil)
|
|
|
+ }).disposed(by: disposeBag)
|
|
|
+ return titleButton
|
|
|
+ }()
|
|
|
+
|
|
|
+ private lazy var timeStatusLabel: UILabel = {
|
|
|
+ let timeStatusLabel = UILabel()
|
|
|
+ timeStatusLabel.textColor = k999999Color
|
|
|
+ timeStatusLabel.font = kRegularFont14
|
|
|
+ return timeStatusLabel
|
|
|
+ }()
|
|
|
+
|
|
|
+ private lazy var oneCardView: UIView = {
|
|
|
+ let oneCardView = UIView()
|
|
|
+ oneCardView.backgroundColor = kF4F4F4Color
|
|
|
+ oneCardView.cornerRadius = 4
|
|
|
+ oneCardView.masksToBounds = true
|
|
|
+ oneCardView.isHidden = true
|
|
|
+ return oneCardView
|
|
|
+ }()
|
|
|
+
|
|
|
+ private lazy var avatarOtherButton: UIButton = {
|
|
|
+ let avatarOtherButton = UIButton(type: UIButton.ButtonType.custom)
|
|
|
+ avatarOtherButton.setImage(kImage(name: "pic_preload"), for: UIControl.State.normal)
|
|
|
+ avatarOtherButton.imageView?.contentMode = .scaleAspectFit
|
|
|
+ avatarOtherButton.cornerRadius = 20
|
|
|
+ avatarOtherButton.masksToBounds = true
|
|
|
+ avatarOtherButton.rx.tap.subscribe(onNext: { (data) in
|
|
|
+ NotificationCenter.default.post(name: NSNotification.Name(rawValue: "CommunityUser"), object: nil)
|
|
|
+
|
|
|
+ }).disposed(by: disposeBag)
|
|
|
+ return avatarOtherButton
|
|
|
+ }()
|
|
|
+
|
|
|
+ private lazy var titleOtherButton: UIButton = {
|
|
|
+ let titleOtherButton = UIButton(type: UIButton.ButtonType.custom)
|
|
|
+ titleOtherButton.setTitle("其他用户昵称", for: UIControl.State.normal)
|
|
|
+ titleOtherButton.setTitleColor(k333333Color, for: UIControl.State.normal)
|
|
|
+ titleOtherButton.titleLabel?.font = kMediumFont15
|
|
|
+ titleOtherButton.rx.tap.subscribe(onNext: { (data) in
|
|
|
+ NotificationCenter.default.post(name: NSNotification.Name(rawValue: "CommunityUser"), object: nil)
|
|
|
+ }).disposed(by: disposeBag)
|
|
|
+ return titleOtherButton
|
|
|
+ }()
|
|
|
+
|
|
|
+ private lazy var followButton: UIButton = {
|
|
|
+ let followButton = UIButton(type: UIButton.ButtonType.custom)
|
|
|
+ followButton.titleLabel?.font = kMediumFont13
|
|
|
+ followButton.layer.cornerRadius = 13
|
|
|
+ followButton.layer.masksToBounds = true
|
|
|
+ followButton.layer.borderWidth = 1
|
|
|
+ followButton.rx.tap.subscribe(onNext: { (data) in
|
|
|
+
|
|
|
+ }).disposed(by: disposeBag)
|
|
|
+ return followButton
|
|
|
+ }()
|
|
|
+
|
|
|
+ private lazy var twoCardView: UIView = {
|
|
|
+ let twoCardView = UIView()
|
|
|
+ twoCardView.backgroundColor = kF4F4F4Color
|
|
|
+ twoCardView.isHidden = true
|
|
|
+ twoCardView.cornerRadius = 4
|
|
|
+ twoCardView.masksToBounds = true
|
|
|
+ return twoCardView
|
|
|
+ }()
|
|
|
+
|
|
|
+ private lazy var twoTitleLabel: UILabel = {
|
|
|
+ let twoTitleLabel = UILabel()
|
|
|
+ twoTitleLabel.text = "迦百农对社会问题进行了哪些探讨啊这迦百农对社会问题进行了哪些探讨啊这"
|
|
|
+ twoTitleLabel.textColor = k333333Color
|
|
|
+ twoTitleLabel.font = kMediumFont16
|
|
|
+ return twoTitleLabel
|
|
|
+ }()
|
|
|
+
|
|
|
+ private lazy var twoSubtitleLabel: UILabel = {
|
|
|
+ let twoSubtitleLabel = UILabel()
|
|
|
+ twoSubtitleLabel.text = "照片拍的真棒,我很喜欢这张照照片拍的真棒,我很喜欢这张照"
|
|
|
+ twoSubtitleLabel.textColor = k999999Color
|
|
|
+ twoSubtitleLabel.font = kRegularFont14
|
|
|
+ return twoSubtitleLabel
|
|
|
+ }()
|
|
|
+
|
|
|
+ private lazy var twoGoImageView: UIImageView = {
|
|
|
+ let twoGoImageView = UIImageView()
|
|
|
+ twoGoImageView.image = kImage(name: "my_arrows_unfold")
|
|
|
+ return twoGoImageView
|
|
|
+ }()
|
|
|
+
|
|
|
+ private lazy var threeCardView: UIView = {
|
|
|
+ let threeCardView = UIView()
|
|
|
+ threeCardView.backgroundColor = kF4F4F4Color
|
|
|
+ threeCardView.isHidden = true
|
|
|
+ threeCardView.cornerRadius = 4
|
|
|
+ threeCardView.masksToBounds = true
|
|
|
+ return threeCardView
|
|
|
+ }()
|
|
|
+
|
|
|
+ private lazy var threeTitleLabel: UILabel = {
|
|
|
+ let threeTitleLabel = UILabel()
|
|
|
+ threeTitleLabel.text = "迦百农对社会问题进行了哪些探讨啊这迦百农对社会问题进行了哪些探讨啊这"
|
|
|
+ threeTitleLabel.textColor = k333333Color
|
|
|
+ threeTitleLabel.font = kMediumFont16
|
|
|
+ return threeTitleLabel
|
|
|
+ }()
|
|
|
+
|
|
|
+ private lazy var threeGoImageView: UIImageView = {
|
|
|
+ let threeGoImageView = UIImageView()
|
|
|
+ threeGoImageView.image = kImage(name: "my_arrows_unfold")
|
|
|
+ return threeGoImageView
|
|
|
+ }()
|
|
|
+
|
|
|
+ private lazy var skittlesImageView: UIImageView = {
|
|
|
+ let skittlesImageView = UIImageView()
|
|
|
+ skittlesImageView.image = kImage(name: "my_arrows_unfold")
|
|
|
+ skittlesImageView.cornerRadius = 8
|
|
|
+ skittlesImageView.masksToBounds = true
|
|
|
+ return skittlesImageView
|
|
|
+ }()
|
|
|
+
|
|
|
+ private lazy var skittlesTitleLabel: UILabel = {
|
|
|
+ let skittlesTitleLabel = UILabel()
|
|
|
+ skittlesTitleLabel.text = "收获 66 个彩虹豆"
|
|
|
+ skittlesTitleLabel.textColor = k333333Color
|
|
|
+ skittlesTitleLabel.font = kRegularFont13
|
|
|
+ return skittlesTitleLabel
|
|
|
+ }()
|
|
|
+
|
|
|
+ var followUserStatus: FollowUserStatus! {
|
|
|
+ didSet {
|
|
|
+ switch followUserStatus {
|
|
|
+ case .follow?:
|
|
|
+ timeStatusLabel.text = "刚刚 关注了"
|
|
|
+ oneCardView.isHidden = false
|
|
|
+ twoCardView.isHidden = true
|
|
|
+ threeCardView.isHidden = true
|
|
|
+ skittlesImageView.isHidden = true
|
|
|
+ skittlesTitleLabel.isHidden = true
|
|
|
+ break
|
|
|
+ case .comment?:
|
|
|
+ timeStatusLabel.text = "30秒前 评论"
|
|
|
+ oneCardView.isHidden = true
|
|
|
+ twoCardView.isHidden = false
|
|
|
+ threeCardView.isHidden = true
|
|
|
+ skittlesImageView.isHidden = false
|
|
|
+ skittlesTitleLabel.isHidden = false
|
|
|
+ skittlesImageView.snp_makeConstraints { (make) in
|
|
|
+ make.left.equalTo(15)
|
|
|
+ make.top.equalTo(twoCardView.snp_bottom).offset(12)
|
|
|
+ make.size.equalTo(16)
|
|
|
+ }
|
|
|
+ skittlesTitleLabel.snp_makeConstraints { (make) in
|
|
|
+ make.left.equalTo(skittlesImageView.snp_right).offset(2)
|
|
|
+ make.centerY.equalTo(skittlesImageView)
|
|
|
+ }
|
|
|
+ break
|
|
|
+ case .forward?:
|
|
|
+ timeStatusLabel.text = "2019-02-01 转发"
|
|
|
+ oneCardView.isHidden = true
|
|
|
+ twoCardView.isHidden = true
|
|
|
+ threeCardView.isHidden = false
|
|
|
+ skittlesImageView.isHidden = false
|
|
|
+ skittlesTitleLabel.isHidden = false
|
|
|
+ skittlesImageView.snp_makeConstraints { (make) in
|
|
|
+ make.left.equalTo(15)
|
|
|
+ make.top.equalTo(threeCardView.snp_bottom).offset(12)
|
|
|
+ make.size.equalTo(16)
|
|
|
+ }
|
|
|
+ skittlesTitleLabel.snp_makeConstraints { (make) in
|
|
|
+ make.left.equalTo(skittlesImageView.snp_right).offset(2)
|
|
|
+ make.centerY.equalTo(skittlesImageView)
|
|
|
+ }
|
|
|
+ break
|
|
|
+ case .like?:
|
|
|
+ timeStatusLabel.text = "30秒前 点赞"
|
|
|
+ oneCardView.isHidden = true
|
|
|
+ twoCardView.isHidden = true
|
|
|
+ threeCardView.isHidden = false
|
|
|
+ skittlesImageView.isHidden = false
|
|
|
+ skittlesTitleLabel.isHidden = false
|
|
|
+ skittlesImageView.snp_makeConstraints { (make) in
|
|
|
+ make.left.equalTo(15)
|
|
|
+ make.top.equalTo(threeCardView.snp_bottom).offset(12)
|
|
|
+ make.size.equalTo(16)
|
|
|
+ }
|
|
|
+ skittlesTitleLabel.snp_makeConstraints { (make) in
|
|
|
+ make.left.equalTo(skittlesImageView.snp_right).offset(2)
|
|
|
+ make.centerY.equalTo(skittlesImageView)
|
|
|
+ }
|
|
|
+ break
|
|
|
+ case .collection?:
|
|
|
+ timeStatusLabel.text = "2天前 收藏"
|
|
|
+ oneCardView.isHidden = true
|
|
|
+ twoCardView.isHidden = true
|
|
|
+ threeCardView.isHidden = false
|
|
|
+ skittlesImageView.isHidden = false
|
|
|
+ skittlesTitleLabel.isHidden = false
|
|
|
+ skittlesImageView.snp_makeConstraints { (make) in
|
|
|
+ make.left.equalTo(15)
|
|
|
+ make.top.equalTo(threeCardView.snp_bottom).offset(12)
|
|
|
+ make.size.equalTo(16)
|
|
|
+ }
|
|
|
+ skittlesTitleLabel.snp_makeConstraints { (make) in
|
|
|
+ make.left.equalTo(skittlesImageView.snp_right).offset(2)
|
|
|
+ make.centerY.equalTo(skittlesImageView)
|
|
|
+ }
|
|
|
+ break
|
|
|
+ default:
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var followType: FollowType! {
|
|
|
+ didSet {
|
|
|
+ switch followType {
|
|
|
+ case .futureFollow?:
|
|
|
+ followButton.setTitle("关注", for: UIControl.State.normal)
|
|
|
+ followButton.setTitleColor(kThemeColor, for: UIControl.State.normal)
|
|
|
+ followButton.setImage(kImage(name: "my_arrows_unfold"), for: UIControl.State.normal)
|
|
|
+ followButton.layer.borderColor = kThemeColor.cgColor
|
|
|
+ followButton.setBackgroundImage(UIImage.imageWithColor(color: kffffffColor), for: UIControl.State.normal)
|
|
|
+ followButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.left, imageTitleSpace: 2)
|
|
|
+
|
|
|
+ break
|
|
|
+ case .alreadyFollow?:
|
|
|
+ followButton.setTitle("关注", for: UIControl.State.normal)
|
|
|
+ followButton.setTitleColor(k333333Color, for: UIControl.State.normal)
|
|
|
+ followButton.setImage(kImage(name: "my_arrows_unfold"), for: UIControl.State.normal)
|
|
|
+ followButton.layer.borderColor = kf7f8faColor.cgColor
|
|
|
+ followButton.setBackgroundImage(UIImage.imageWithColor(color: kf7f8faColor), for: UIControl.State.normal)
|
|
|
+ followButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.left, imageTitleSpace: 2)
|
|
|
+ break
|
|
|
+ case .mutualFollow?:
|
|
|
+ followButton.setTitle("互相关注", for: UIControl.State.normal)
|
|
|
+ followButton.setTitleColor(k333333Color, for: UIControl.State.normal)
|
|
|
+ followButton.setImage(nil, for: UIControl.State.normal)
|
|
|
+ followButton.layer.borderColor = kccccccColor.cgColor
|
|
|
+ followButton.setBackgroundImage(UIImage.imageWithColor(color: kffffffColor), for: UIControl.State.normal)
|
|
|
+ followButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.left, imageTitleSpace: 0)
|
|
|
+
|
|
|
+ break
|
|
|
+ default:
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|