// // ExpressAddressListTableViewCell.swift // RainbowPlanet // // Created by 南鑫林 on 2019/4/26. // Copyright © 2019 南鑫林. All rights reserved. // import UIKit import RxSwift import RxCocoa class ExpressAddressListTableViewCell: UITableViewCell { class func cellWith(tableView:UITableView,indexPath:IndexPath) -> ExpressAddressListTableViewCell { let ID = "ExpressAddressListTableViewCell" tableView.register(ExpressAddressListTableViewCell.self, forCellReuseIdentifier: ID) let cell : ExpressAddressListTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! ExpressAddressListTableViewCell 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 { } } let disposeBag = DisposeBag() typealias EditClosure = (_ indexPath: IndexPath) -> Void var editClosure: EditClosure? //MRAK: - 设置View private func setupViews() { self.selectionStyle = .none addSubview(nameLabel) addSubview(moblieLabel) addSubview(defalutLabel) addSubview(addressLabel) addSubview(lineLabel) addSubview(v_lineLabel) addSubview(editButton) addSubview(selectedButton) } private func setupLayouts() { nameLabel.snp.makeConstraints { (make) in make.top.equalTo(15) make.left.equalTo(52) make.height.equalTo(23) } moblieLabel.snp.makeConstraints { (make) in make.left.equalTo(nameLabel.snp.right).offset(10) make.centerY.equalTo(nameLabel) make.height.equalTo(20) } addressLabel.snp.remakeConstraints { (make) in make.top.equalTo(nameLabel.snp.bottom).offset(5) make.left.equalTo(92) make.right.equalTo(-60) make.bottom.equalTo(-15) } defalutLabel.snp.remakeConstraints { (make) in make.left.equalTo(nameLabel) make.top.equalTo(addressLabel) make.width.equalTo(36) make.height.equalTo(17) } lineLabel.snp.makeConstraints { (make) in make.top.right.equalToSuperview() make.left.equalTo(14) make.height.equalTo(0.5) } editButton.snp.makeConstraints { (make) in make.centerY.equalToSuperview() make.size.equalTo(50) make.right.equalToSuperview() } selectedButton.snp.makeConstraints { (make) in make.left.equalTo(14) make.top.equalTo(addressLabel.snp.top) make.size.equalTo(16) } v_lineLabel.snp.makeConstraints { (make) in make.right.equalTo(editButton.snp.left) make.height.centerY.equalTo(editButton) make.width.equalTo(0.5) } } private lazy var nameLabel: UILabel = { let nameLabel = UILabel() nameLabel.text = "姓名" nameLabel.textColor = k333333Color nameLabel.font = kMediumFont16 return nameLabel }() private lazy var moblieLabel: UILabel = { let moblieLabel = UILabel() moblieLabel.text = "18392056542" moblieLabel.textColor = k999999Color moblieLabel.font = kRegularFont14 return moblieLabel }() private lazy var defalutLabel: UILabel = { let defalutLabel = UILabel() defalutLabel.backgroundColor = kFFF1EBColor defalutLabel.text = "默认" defalutLabel.textColor = kFE5706Color defalutLabel.font = kRegularFont13 defalutLabel.cornerRadius = 17/2 defalutLabel.masksToBounds = true defalutLabel.textAlignment = .center return defalutLabel }() private lazy var addressLabel: UILabel = { let addressLabel = UILabel() addressLabel.text = "陕西省 西安市 雁塔区 曲江街道 翠华南路创意盒子" addressLabel.textColor = k333333Color addressLabel.font = kRegularFont14 addressLabel.numberOfLines = 0 return addressLabel }() private lazy var lineLabel: UILabel = { let lineLabel = UILabel() lineLabel.backgroundColor = kf5f5f5Color return lineLabel }() private lazy var v_lineLabel: UILabel = { let v_lineLabel = UILabel() v_lineLabel.backgroundColor = ke6e6e6Color return v_lineLabel }() private lazy var editButton : UIButton = { let editButton = UIButton(type: UIButton.ButtonType.custom) editButton.setTitle("编辑", for: UIControl.State.normal) editButton.setTitleColor(k999999Color, for: UIControl.State.normal) editButton.titleLabel?.font = kRegularFont14 editButton.rx.tap.subscribe(onNext: { [weak self] in if let editClosure = self?.editClosure { editClosure((self?.indexPath!)!) } }).disposed(by: disposeBag) return editButton }() private lazy var selectedButton: UIButton = { let selectedButton = UIButton(type: UIButton.ButtonType.custom) selectedButton.setImage(kImage(name: "common_uncheck_icon"), for: UIControl.State.normal) selectedButton.setImage(kImage(name: "common_check_icon"), for: UIControl.State.selected) return selectedButton }() var expressAddresModel: ExpressAddresModel? { didSet { nameLabel.text = expressAddresModel?.contactName moblieLabel.text = expressAddresModel?.contactMobile let provinceName = expressAddresModel!.provinceName let cityName = expressAddresModel!.cityName let areaName = expressAddresModel!.areaName let address = expressAddresModel!.address addressLabel.text = "\(String(describing: provinceName ?? "")) \(String(describing: cityName ?? "")) \(String(describing: areaName ?? "")) \(String(describing: address ?? ""))" if expressAddresModel!.isDefault == 1 { selectedButton.isSelected = true defalutLabel.isHidden = false addressLabel.snp.remakeConstraints { (make) in make.top.equalTo(nameLabel.snp.bottom).offset(5) make.left.equalTo(92) make.right.equalTo(-60) make.bottom.equalTo(-15) } }else { selectedButton.isSelected = false defalutLabel.isHidden = true addressLabel.snp.remakeConstraints { (make) in make.top.equalTo(nameLabel.snp.bottom).offset(5) make.left.equalTo(52) make.right.equalTo(-60) make.bottom.equalTo(-15) } } } } }