123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456 |
- //
- // CommunityFollowStatusTableViewCell.swift
- // RainbowPlanet
- //
- // Created by 南鑫林 on 2019/6/12.
- // Copyright © 2019 RainbowPlanet. All rights reserved.
- //
- import UIKit
- import RxSwift
- import Kingfisher
- class CommunityFollowStatusTableViewCell: UITableViewCell {
-
- let disposeBag = DisposeBag()
-
- typealias FollowClosure = () -> Void
- var followClosure : FollowClosure?
-
- 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)
- make.right.equalTo(followButton.snp.left).offset(-5)
- }
-
- followButton.snp_makeConstraints { (make) in
- make.centerY.equalTo(avatarOtherButton)
- make.right.equalToSuperview().offset(-15)
- make.height.equalTo(28)
- make.width.equalTo(60)
- }
-
- 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(-37)
- 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: "default_avatar"), for: UIControl.State.normal)
- avatarButton.imageView?.contentMode = .scaleAspectFill
- avatarButton.imageView?.clipsToBounds = true
- avatarButton.cornerRadius = 14
- avatarButton.masksToBounds = true
- avatarButton.rx.tap.subscribe(onNext: { [weak self] (data) in
- NotificationCenter.default.post(name: NSNotification.Name(rawValue: "CommunityUser"), object: self?.communityFollowDataModel?.followUid)
-
- }).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: { [weak self] (data) in
- NotificationCenter.default.post(name: NSNotification.Name(rawValue: "CommunityUser"), object: self?.communityFollowDataModel?.followUid)
- }).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: "default_pic"), for: UIControl.State.normal)
- avatarOtherButton.imageView?.contentMode = .scaleAspectFill
- avatarOtherButton.imageView?.clipsToBounds = true
- avatarOtherButton.cornerRadius = 20
- avatarOtherButton.masksToBounds = true
- avatarOtherButton.rx.tap.subscribe(onNext: {
- [weak self] (data) in
- NotificationCenter.default.post(name: NSNotification.Name(rawValue: "CommunityUser"), object: self?.communityFollowDataModel?.relateData?.uid)
-
- }).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: {
- [weak self] (data) in
- NotificationCenter.default.post(name: NSNotification.Name(rawValue: "CommunityUser"), object: self?.communityFollowDataModel?.relateData?.uid)
- }).disposed(by: disposeBag)
- return titleOtherButton
- }()
-
-
- private lazy var followButton: UIButton = {
- let followButton = UIButton(type: UIButton.ButtonType.custom)
- followButton.titleLabel?.font = kRegularFont13
- followButton.layer.cornerRadius = 14
- followButton.layer.masksToBounds = true
- followButton.rx.tap.subscribe(onNext: {[weak self] (data) in
- followButton.isEnabled = false
- if let followClosure = self?.followClosure {
- followClosure()
- }
- }).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
- twoCardView.addTapGesture(1, target: self, action: #selector(contentDetail))
- return twoCardView
- }()
-
- private lazy var twoTitleLabel: UILabel = {
- let twoTitleLabel = UILabel()
- twoTitleLabel.textColor = k333333Color
- twoTitleLabel.font = kMediumFont16
- return twoTitleLabel
- }()
-
- private lazy var twoSubtitleLabel: UILabel = {
- let twoSubtitleLabel = UILabel()
- 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
- threeCardView.addTapGesture(1, target: self, action: #selector(contentDetail))
- return threeCardView
- }()
-
- private lazy var threeTitleLabel: UILabel = {
- let threeTitleLabel = UILabel()
- 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: "ico_bean_org_40px")
- skittlesImageView.cornerRadius = 8
- skittlesImageView.masksToBounds = true
- return skittlesImageView
- }()
-
- private lazy var skittlesTitleLabel: UILabel = {
- let skittlesTitleLabel = UILabel()
- skittlesTitleLabel.textColor = k333333Color
- skittlesTitleLabel.font = kRegularFont13
- return skittlesTitleLabel
- }()
-
- var communityFollowDataModel : CommunityFollowDataModel? {
- didSet {
- avatarButton.kf.setImage(with: kURLThumbnailsImage(name: communityFollowDataModel?.followAvatar ?? "",size: kSize28x28Image), for: UIControl.State.normal , placeholder: kImage(name: "default_avatar"))
-
- titleButton.setTitle(communityFollowDataModel?.followUsername, for: UIControl.State.normal)
- skittlesTitleLabel.text = "收获 \(communityFollowDataModel?.content?.beans ?? 0) U米"
- communityFollowType = CommunityFollowType(rawValue: communityFollowDataModel?.type ?? "1")
- }
- }
-
-
- var communityFollowType: CommunityFollowType? {
- didSet {
- switch communityFollowType {
- case .follow?:
- timeStatusLabel.text = "\(communityFollowDataModel?.createdAt ?? "") 关注了"
- avatarOtherButton.kf.setImage(with: kURLThumbnailsImage(name: communityFollowDataModel?.relateData?.avatar ?? "",size: kSize40x40Image), for: UIControl.State.normal , placeholder: kImage(name: "default_avatar"))
-
- titleOtherButton.setTitle(communityFollowDataModel?.relateData?.username, for: UIControl.State.normal)
- if communityFollowDataModel?.relateData?.uid == UserModel.shared().getModel()?.uid {
- followButton.isHidden = true
- }else {
- followButton.isHidden = false
- }
- CommunityFollowUserViewModel.setFollowFeedType(followButton: followButton, followType: FollowType(rawValue: communityFollowDataModel?.relateData?.isFollow ?? 0))
- oneCardView.isHidden = false
- twoCardView.isHidden = true
- threeCardView.isHidden = true
- skittlesImageView.isHidden = true
- skittlesTitleLabel.isHidden = true
- break
- case .comment?:
- timeStatusLabel.text = "\(communityFollowDataModel?.createdAt ?? "") 评论"
- twoTitleLabel.text = communityFollowDataModel?.content?.postDesc ?? ""
- twoSubtitleLabel.text = "“\(communityFollowDataModel?.content?.commentDesc ?? "")”"
-
- oneCardView.isHidden = true
- twoCardView.isHidden = false
- threeCardView.isHidden = true
-
- if communityFollowDataModel?.content?.beans == nil || communityFollowDataModel?.content?.beans ?? 0 <= 0 {
- skittlesImageView.isHidden = true
- skittlesTitleLabel.isHidden = true
- }else {
- skittlesImageView.isHidden = false
- skittlesTitleLabel.isHidden = false
- skittlesImageView.snp_remakeConstraints { (make) in
- make.left.equalTo(15)
- make.top.equalTo(twoCardView.snp_bottom).offset(12)
- make.size.equalTo(16)
- }
- skittlesTitleLabel.snp_remakeConstraints { (make) in
- make.left.equalTo(skittlesImageView.snp_right).offset(2)
- make.top.equalTo(skittlesImageView)
- }
- }
- break
- case .forward?:
- timeStatusLabel.text = "\(communityFollowDataModel?.createdAt ?? "") 转发"
- threeTitleLabel.text = communityFollowDataModel?.content?.postDesc ?? ""
- oneCardView.isHidden = true
- twoCardView.isHidden = true
- threeCardView.isHidden = false
-
- if communityFollowDataModel?.content?.beans == nil || communityFollowDataModel?.content?.beans ?? 0 <= 0 {
- skittlesImageView.isHidden = true
- skittlesTitleLabel.isHidden = true
- }else {
- skittlesImageView.isHidden = false
- skittlesTitleLabel.isHidden = false
- skittlesImageView.snp_remakeConstraints { (make) in
- make.left.equalTo(15)
- make.top.equalTo(twoCardView.snp_bottom).offset(12)
- make.size.equalTo(16)
- }
- skittlesTitleLabel.snp_remakeConstraints { (make) in
- make.left.equalTo(skittlesImageView.snp_right).offset(2)
- make.top.equalTo(skittlesImageView)
- }
- }
-
- break
- case .like?:
- timeStatusLabel.text = "\(communityFollowDataModel?.createdAt ?? "") 点赞"
- threeTitleLabel.text = communityFollowDataModel?.content?.postDesc ?? ""
- oneCardView.isHidden = true
- twoCardView.isHidden = true
- threeCardView.isHidden = false
-
- if communityFollowDataModel?.content?.beans == nil || communityFollowDataModel?.content?.beans ?? 0 <= 0 {
- skittlesImageView.isHidden = true
- skittlesTitleLabel.isHidden = true
- }else {
- skittlesImageView.isHidden = false
- skittlesTitleLabel.isHidden = false
- skittlesImageView.snp_remakeConstraints { (make) in
- make.left.equalTo(15)
- make.top.equalTo(twoCardView.snp_bottom).offset(12)
- make.size.equalTo(16)
- }
- skittlesTitleLabel.snp_remakeConstraints { (make) in
- make.left.equalTo(skittlesImageView.snp_right).offset(2)
- make.top.equalTo(skittlesImageView)
- }
- }
- break
- case .collection?:
- timeStatusLabel.text = "\(communityFollowDataModel?.createdAt ?? "") 收藏"
- threeTitleLabel.text = communityFollowDataModel?.content?.postDesc ?? ""
- oneCardView.isHidden = true
- twoCardView.isHidden = true
- threeCardView.isHidden = false
-
- if communityFollowDataModel?.content?.beans == nil || communityFollowDataModel?.content?.beans ?? 0 <= 0 {
- skittlesImageView.isHidden = true
- skittlesTitleLabel.isHidden = true
- }else {
- skittlesImageView.isHidden = false
- skittlesTitleLabel.isHidden = false
- skittlesImageView.snp_remakeConstraints { (make) in
- make.left.equalTo(15)
- make.top.equalTo(twoCardView.snp_bottom).offset(12)
- make.size.equalTo(16)
- }
- skittlesTitleLabel.snp_remakeConstraints { (make) in
- make.left.equalTo(skittlesImageView.snp_right).offset(2)
- make.top.equalTo(skittlesImageView)
- }
- }
- break
- default:
- break
- }
- }
- }
-
-
- /// 内容详情页面
- @objc func contentDetail() {
- if PostType(rawValue: communityFollowDataModel?.relateData?.type ?? "video") == .video {
- NotificationCenter.default.post(name: NSNotification.Name(rawValue: "CommunityContentDetailClosure"), object: communityFollowDataModel?.relateId)
- }else {
- NotificationCenter.default.post(name: NSNotification.Name(rawValue: "CommunityContentDetailClosure"), object: communityFollowDataModel?.relateId)
- }
- }
-
- }
|