PublishEditDescribeCell.swift 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. //
  2. // PublishEditDescribeCell.swift
  3. // RainbowPlanet
  4. //
  5. // Created by Christopher on 2019/6/17.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. //
  8. import UIKit
  9. import RxSwift
  10. import IQKeyboardManagerSwift
  11. class PublishEditDescribeCell: UITableViewCell {
  12. let disposeBag = DisposeBag()
  13. typealias CommentTextViewClosure = (_ text: String) -> Void
  14. var commentTextViewClosure : CommentTextViewClosure?
  15. class func cellWith(tableView:UITableView,indexPath:IndexPath) -> PublishEditDescribeCell {
  16. let ID = "PublishEditDescribeCell"
  17. tableView.register(PublishEditDescribeCell.self, forCellReuseIdentifier: ID)
  18. let cell : PublishEditDescribeCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! PublishEditDescribeCell
  19. cell.indexPath = indexPath
  20. return cell
  21. }
  22. override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
  23. super.init(style: style, reuseIdentifier: reuseIdentifier)
  24. setupViews()
  25. setupLayouts()
  26. }
  27. required init?(coder aDecoder: NSCoder) {
  28. fatalError("init(coder:) has not been implemented")
  29. }
  30. var indexPath: IndexPath? {
  31. didSet {
  32. }
  33. }
  34. //MRAK: - 设置View
  35. private func setupViews() {
  36. self.selectionStyle = .none
  37. addSubview(cmtTextView)
  38. }
  39. private func setupLayouts() {
  40. cmtTextView.snp.makeConstraints { (make) in
  41. make.edges.equalToSuperview()
  42. }
  43. }
  44. private lazy var cmtTextView: IQTextView = {
  45. let cmtTextView = IQTextView()
  46. cmtTextView.backgroundColor = kffffffColor
  47. cmtTextView.textColor = k333333Color
  48. cmtTextView.font = kRegularFont14
  49. cmtTextView.placeholder = "说一说你的美好心得..."
  50. cmtTextView.placeholderTextColor = k999999Color
  51. cmtTextView.delegate = self
  52. return cmtTextView
  53. }()
  54. }
  55. extension PublishEditDescribeCell: UITextViewDelegate {
  56. func textViewDidChange(_ textView: UITextView) {
  57. if textView == cmtTextView {
  58. var fullStr = textView.text ?? ""
  59. if textView.text?.count ?? 0 > 180 {
  60. fullStr = String(fullStr.prefix(150)) as String
  61. textView.text = fullStr
  62. }
  63. if let commentTextViewClosure = self.commentTextViewClosure {
  64. commentTextViewClosure(self.cmtTextView.text ?? "")
  65. }
  66. }
  67. }
  68. }