JXSegmentedIndicatorParams.swift 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. public struct JXSegmentedIndicatorSelectedParams {
  15. public let currentSelectedIndex: Int
  16. public let currentSelectedItemFrame: CGRect
  17. public let selectedType: JXSegmentedViewItemSelectedType
  18. public let currentItemContentWidth: CGFloat
  19. /// collectionView的contentSize
  20. public var collectionViewContentSize: CGSize?
  21. public init(currentSelectedIndex: Int, currentSelectedItemFrame: CGRect, selectedType: JXSegmentedViewItemSelectedType, currentItemContentWidth: CGFloat, collectionViewContentSize: CGSize?) {
  22. self.currentSelectedIndex = currentSelectedIndex
  23. self.currentSelectedItemFrame = currentSelectedItemFrame
  24. self.selectedType = selectedType
  25. self.currentItemContentWidth = currentItemContentWidth
  26. self.collectionViewContentSize = collectionViewContentSize
  27. }
  28. }
  29. public struct JXSegmentedIndicatorTransitionParams {
  30. public let currentSelectedIndex: Int
  31. public let leftIndex: Int
  32. public let leftItemFrame: CGRect
  33. public let rightIndex: Int
  34. public let rightItemFrame: CGRect
  35. public let leftItemContentWidth: CGFloat
  36. public let rightItemContentWidth: CGFloat
  37. public let percent: CGFloat
  38. public init(currentSelectedIndex: Int, leftIndex: Int, leftItemFrame: CGRect, leftItemContentWidth: CGFloat, rightIndex: Int, rightItemFrame: CGRect, rightItemContentWidth: CGFloat, percent: CGFloat) {
  39. self.currentSelectedIndex = currentSelectedIndex
  40. self.leftIndex = leftIndex
  41. self.leftItemFrame = leftItemFrame
  42. self.leftItemContentWidth = leftItemContentWidth
  43. self.rightIndex = rightIndex
  44. self.rightItemFrame = rightItemFrame
  45. self.rightItemContentWidth = rightItemContentWidth
  46. self.percent = percent
  47. }
  48. }