// // CircleLeavingMessageUserTableViewCell.swift // RainbowPlanet // // Created by 南鑫林 on 2019/10/16. // Copyright © 2019 RainbowPlanet. All rights reserved. // import UIKit import SwiftyMediator import RxSwift class CircleLeavingMessageUserTableViewCell: UITableViewCell { let disposeBag = DisposeBag() typealias DeleteClosure = (_ y:CGFloat) -> Void var deleteClosure : DeleteClosure? class func cellWith(tableView:UITableView,indexPath:IndexPath) -> CircleLeavingMessageUserTableViewCell { let ID = "CircleLeavingMessageUserTableViewCell" tableView.register(CircleLeavingMessageUserTableViewCell.self, forCellReuseIdentifier: ID) let cell : CircleLeavingMessageUserTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! CircleLeavingMessageUserTableViewCell cell.indexPath = indexPath return cell } override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) setupViews() setupLayouts() setupData() } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } var indexPath: IndexPath? { didSet { } } //MRAK: - 设置View private func setupViews() { self.selectionStyle = .none backgroundColor = kf7f8faColor addSubview(avatarButton) addSubview(titleButton) addSubview(timeLabel) addSubview(setButton) } private func setupLayouts() { avatarButton.snp.makeConstraints { (make) in make.centerY.equalToSuperview() make.size.equalTo(40) make.left.equalTo(14) } titleButton.snp.makeConstraints { (make) in make.top.equalTo(avatarButton).offset(2) make.height.equalTo(21) make.left.equalTo(avatarButton.snp.right).offset(16) make.right.lessThanOrEqualTo(setButton.snp.left).offset(-80-46-5) } timeLabel.snp.makeConstraints { (make) in make.bottom.equalTo(avatarButton).offset(4) make.left.equalTo(titleButton) } setButton.snp.makeConstraints { (make) in make.centerY.equalToSuperview() make.size.equalTo(22) make.right.equalTo(-14) } } func setupData() { avatarButton.rx.tap.subscribe(onNext: { [weak self] (data) in self?.pushUser() }).disposed(by: disposeBag) titleButton.rx.tap.subscribe(onNext: { [weak self] (data) in self?.pushUser() }).disposed(by: disposeBag) setButton.rx.tap.subscribe(onNext: {[weak self] (data) in let window = kAppDelegate.window let rect = self?.setButton.convert((self?.setButton.bounds)!, from: window) let y = CGFloat(abs((rect?.origin.y)!)) if let deleteClosure = self?.deleteClosure { deleteClosure(y) } }).disposed(by: disposeBag) } private lazy var avatarButton: UIButton = { let avatarButton = UIButton(type: UIButton.ButtonType.custom) avatarButton.setImage(kImage(name: "default_pic"), for: UIControl.State.normal) avatarButton.imageView?.contentMode = .scaleAspectFill avatarButton.cornerRadius = 20 avatarButton.masksToBounds = true 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.titleLabel?.lineBreakMode = NSLineBreakMode.byTruncatingTail titleButton.titleLabel?.textAlignment = .left titleButton.contentHorizontalAlignment = .left return titleButton }() private lazy var timeLabel: UILabel = { let timeLabel = UILabel() timeLabel.text = "5小时前" timeLabel.textColor = kbbbbbbColor timeLabel.font = kRegularFont12 return timeLabel }() private lazy var setButton: UIButton = { let setButton = UIButton(type: UIButton.ButtonType.custom) setButton.setImage(kImage(name: "btn_more"), for: UIControl.State.normal) setButton.titleLabel?.font = kMediumFont13 return setButton }() var communityCircleMessageModel: CommunityCircleMessageModel? { didSet { avatarButton.kf.setImage(with: kURLImage(name: communityCircleMessageModel?.user?.avatar ?? ""), for: UIControl.State.normal , placeholder: kImage(name: "default_avatar")) titleButton.setTitle(communityCircleMessageModel?.user?.username, for: UIControl.State.normal) timeLabel.text = communityCircleMessageModel?.createdAt if communityCircleMessageModel?.user?.uid == UserModel.shared().getModel()?.uid { setButton.isHidden = false }else { setButton.isHidden = true } } } func pushUser() { if communityCircleMessageModel?.user?.uid != UserModel.shared().getModel()?.uid { Mediator.push(MineRouterModuleType.pushOtherPersonalCenter(uid: communityCircleMessageModel?.user?.uid ?? 0)) } } }