JXSegmentedIndicatorProtocol.swift 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. //
  2. // JXSegmentedIndicatorProtocol.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. public protocol JXSegmentedIndicatorProtocol {
  11. /// 是否需要将当前的indicator的frame转换到cell。辅助JXSegmentedTitleDataSourced的isTitleMaskEnabled属性使用。
  12. /// 如果添加了多个indicator,仅能有一个indicator的isIndicatorConvertToItemFrameEnabled为true。
  13. /// 如果有多个indicator的isIndicatorConvertToItemFrameEnabled为true,则以最后一个isIndicatorConvertToItemFrameEnabled为true的indicator为准。
  14. var isIndicatorConvertToItemFrameEnabled: Bool { get }
  15. /// 视图重置状态时调用,已当前选中的index更新状态
  16. /// param selectedIndex 当前选中的index
  17. /// param selectedCellFrame 当前选中的cellFrame
  18. /// param contentSize collectionView的contentSize
  19. /// - Parameter model: model description
  20. func refreshIndicatorState(model: JXSegmentedIndicatorParamsModel)
  21. /// contentScrollView在进行手势滑动时,处理指示器跟随手势变化UI逻辑;
  22. /// param selectedIndex 当前选中的index
  23. /// param leftIndex 正在过渡中的两个cell,相对位置在左边的cell的index
  24. /// param leftCellFrame 正在过渡中的两个cell,相对位置在左边的cell的frame
  25. /// param rightIndex 正在过渡中的两个cell,相对位置在右边的cell的index
  26. /// param rightCellFrame 正在过渡中的两个cell,相对位置在右边的cell的frame
  27. /// param percent 过渡百分比
  28. /// - Parameter model: model description
  29. func contentScrollViewDidScroll(model: JXSegmentedIndicatorParamsModel)
  30. /// 点击选中了某一个item
  31. /// param lastSelectedIndex 之前选中的index
  32. /// param selectedIndex 选中的index
  33. /// param selectedCellFrame 选中的cellFrame
  34. /// param selectedType 选中的类型
  35. /// - Parameter model: model description
  36. func selectItem(model: JXSegmentedIndicatorParamsModel)
  37. }