JXSegmentedIndicatorParamsModel.swift 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. //
  2. // JXSegmentedIndicatorParamsModel.swift
  3. // JXSegmentedView
  4. //
  5. // Created by jiaxin on 2018/12/26.
  6. // Copyright © 2018 jiaxin. All rights reserved.
  7. //
  8. import Foundation
  9. import UIKit
  10. /**
  11. 指示器传递的数据模型,不同情况会对不同的属性赋值,根据不同情况的api说明确认。
  12. 为什么会通过model传递数据,因为指示器处理逻辑以后会扩展不同的使用场景,会新增参数。如果不通过model传递,就会在api新增参数,一旦修改api修改的地方就特别多了,而且会影响到之前自定义实现的开发者。
  13. */
  14. open class JXSegmentedIndicatorParamsModel {
  15. /// collectionView的contentSize
  16. open var contentSize: CGSize = CGSize.zero
  17. /// 当前选中的index
  18. open var currentSelectedIndex: Int = 0
  19. /// 当前选中的cellFrame
  20. open var currentSelectedItemFrame: CGRect = CGRect.zero
  21. /// 正在过渡中的两个cell,相对位置在左边的cell的index
  22. open var leftIndex: Int = 0
  23. /// 正在过渡中的两个cell,相对位置在左边的cell的frame
  24. open var leftItemFrame: CGRect = CGRect.zero
  25. /// 正在过渡中的两个cell,相对位置在右边的cell的index
  26. open var rightIndex: Int = 0
  27. /// 正在过渡中的两个cell,相对位置在右边的cell的frame
  28. open var rightItemFrame: CGRect = CGRect.zero
  29. /// 正在过渡中的两个cell,从左到右的百分比
  30. open var percent: CGFloat = 0
  31. /// 之前选中的index
  32. open var lastSelectedIndex: Int = 0
  33. /// 选中的类型
  34. open var selectedType: JXSegmentedViewItemSelectedType = .unknown
  35. public init() {
  36. }
  37. }