ThreeViewController.swift 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. //
  2. // ThreeViewController.swift
  3. // OJASwiftKitDemo
  4. //
  5. // Created by luxiaoming on 2017/3/8.
  6. // Copyright © 2017年 luxiaoming. All rights reserved.
  7. //
  8. import UIKit
  9. import OJASwiftKit
  10. class TESTDataModel: NSObject {
  11. var heightForCell: CGFloat = 44
  12. var didSelectCallback: ((IndexPath) -> Void)?
  13. var shouldAutoDeselectCell: Bool = true
  14. var title: String = "111"
  15. // var cellStyle: UITableViewCellStyle = .default
  16. }
  17. class ThreeViewController: OJSTableViewController {
  18. var dataArray = [TESTDataModel]()
  19. }
  20. // MARK: - Lifecycle
  21. extension ThreeViewController {
  22. override func viewDidLoad() {
  23. super.viewDidLoad()
  24. tableView.delegate = self
  25. tableView.dataSource = self
  26. tableView.ojs_registerCell(class: OJSStaticCell.self)
  27. // tableView.ojs_register(nib: OJSStaticCell.classForCoder())
  28. self.dataArray = [TESTDataModel(), TESTDataModel(), TESTDataModel(), TESTDataModel(),]
  29. }
  30. override func didReceiveMemoryWarning() {
  31. super.didReceiveMemoryWarning()
  32. // Dispose of any resources that can be recreated.
  33. }
  34. }
  35. // MARK: - UITableViewDataSource
  36. extension ThreeViewController: UITableViewDataSource {
  37. func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  38. return self.dataArray.count
  39. }
  40. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  41. let cell = tableView.ojs_dequeueReusableCell(withClass: OJSStaticCell.self)
  42. // let cell = tableView.dequeueReusableCell(withIdentifier: OJSStaticCell.ojs_reuseIdentifier) as! OJSStaticCell
  43. cell.textLabel?.text = "text"
  44. return cell
  45. }
  46. }
  47. // MARK: - UITableViewDelegate
  48. extension ThreeViewController: UITableViewDelegate {
  49. func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
  50. return self.dataArray[indexPath.row].heightForCell
  51. }
  52. func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  53. let model = self.dataArray[indexPath.row]
  54. if model.shouldAutoDeselectCell {
  55. tableView.deselectRow(at: indexPath, animated: true)
  56. }
  57. if let callback = model.didSelectCallback {
  58. callback(indexPath)
  59. }
  60. }
  61. }
  62. //// MARK: - Rotation
  63. //extension ThreeViewController {
  64. //
  65. // open override var shouldAutorotate: Bool {
  66. // return true
  67. // }
  68. //
  69. // open override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
  70. // return .allButUpsideDown
  71. // }
  72. //
  73. // open override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
  74. // return .landscapeLeft
  75. // }
  76. //}