123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- //
- // EditExpressAddressTableViewCell.swift
- // RainbowPlanet
- //
- // Created by 南鑫林 on 2019/4/30.
- // Copyright © 2019 南鑫林. All rights reserved.
- //
- import UIKit
- import RxSwift
- import RxCocoa
- import IQKeyboardManagerSwift
- class EditExpressAddressTableViewCell: UITableViewCell {
-
- let disposeBag = DisposeBag()
-
- typealias EditTextViewClosure = (_ text: String,_ indexPath:IndexPath) -> Void
- var editTextViewClosure : EditTextViewClosure?
-
- class func cellWith(tableView:UITableView,indexPath:IndexPath) -> EditExpressAddressTableViewCell {
- let ID = "EditExpressAddressTableViewCell"
- tableView.register(EditExpressAddressTableViewCell.self, forCellReuseIdentifier: ID)
- let cell : EditExpressAddressTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! EditExpressAddressTableViewCell
- 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() {
- selectionStyle = .none
- addSubview(titleLabel)
- addSubview(editTextView)
- addSubview(h_lineLabel)
- }
-
- private func setupLayouts() {
- titleLabel.snp.remakeConstraints { (make) in
- make.left.equalTo(14)
- make.top.equalToSuperview().offset(15)
- }
- editTextView.snp.remakeConstraints { (make) in
- make.top.equalToSuperview().offset(15)
- make.height.greaterThanOrEqualTo(48).priority(888)
- make.bottom.equalToSuperview().offset(-15).priority(777)
- make.left.equalTo(94)
- make.right.equalTo(-14)
- }
- h_lineLabel.snp.makeConstraints { (make) in
- make.left.equalTo(14)
- make.right.bottom.equalToSuperview()
- make.height.equalTo(0.5)
- }
- }
-
- private lazy var titleLabel: UILabel = {
- let titleLabel = UILabel()
- titleLabel.textColor = k333333Color
- titleLabel.font = kRegularFont16
- return titleLabel
- }()
-
- private lazy var editTextView: IQTextView = {
- let editTextView = IQTextView()
- editTextView.textColor = k333333Color
- editTextView.font = kRegularFont16
- editTextView.tintColor = kEnabledButtonColor
- editTextView.isScrollEnabled = false
- editTextView.textContainer.lineFragmentPadding = 0
- editTextView.textContainerInset = .zero
- editTextView.delegate = self
- return editTextView
- }()
-
- private lazy var h_lineLabel: UILabel = {
- let h_lineLabel = UILabel()
- h_lineLabel.backgroundColor = kf5f5f5Color
- return h_lineLabel
- }()
-
- var titles : [String]? {
- didSet {
- titleLabel.text = titles![(indexPath?.row)!]
- }
- }
- var placeholderTitles : [String]? {
- didSet {
- editTextView.placeholder = placeholderTitles![(indexPath?.row)!]
- }
- }
-
- var expressAddresModel: ExpressAddresModel? {
- didSet {
- switch indexPath?.row {
- case 3:
- editTextView.text = expressAddresModel?.address
- break
- default:
- break
- }
- }
- }
- }
- extension EditExpressAddressTableViewCell: UITextViewDelegate {
-
- func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
- if textView == editTextView {
- var fullStr = textView.text ?? ""
- if textView.text?.count ?? 0 > 180 {
- fullStr = String(fullStr.prefix(150)) as String
- textView.text = fullStr
- }
-
- if let editTextViewClosure = self.editTextViewClosure {
- editTextViewClosure(self.editTextView.text ?? "",(self.indexPath!))
- }
- }
- return true
- }
-
- }
|