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