123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- //
- // 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))
- }
- }
- }
|