酷店

XLPageBasicTitleView.h 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. //
  2. // XLPageBasicTitleView.h
  3. // XLPageViewControllerExample
  4. //
  5. // Created by MengXianLiang on 2019/5/8.
  6. // Copyright © 2019 jwzt. All rights reserved.
  7. // https://github.com/mengxianliang/XLPageViewController
  8. // 分页控制器标题栏
  9. #import <UIKit/UIKit.h>
  10. #import "XLPageTitleCell.h"
  11. NS_ASSUME_NONNULL_BEGIN
  12. @protocol XLPageTitleViewDataSrouce <NSObject>
  13. @required
  14. /**
  15. 根据index返回对应的标题
  16. @param index 当前位置
  17. @return 返回要展示的标题
  18. */
  19. - (NSString *)pageTitleViewTitleForIndex:(NSInteger)index;
  20. /**
  21. 要展示分页数
  22. @return 返回分页数
  23. */
  24. - (NSInteger)pageTitleViewNumberOfTitle;
  25. /**
  26. 自定义cell方法
  27. */
  28. - (__kindof XLPageTitleCell *)pageTitleViewCellForItemAtIndex:(NSInteger)index;
  29. @end
  30. @protocol XLPageTitleViewDelegate <NSObject>
  31. /**
  32. 选中位置代理方法
  33. @param index 所选位置
  34. */
  35. - (BOOL)pageTitleViewDidSelectedAtIndex:(NSInteger)index;
  36. @end
  37. @interface XLPageBasicTitleView : UIView
  38. /**
  39. 数据源
  40. */
  41. @property (nonatomic, weak) id <XLPageTitleViewDataSrouce> dataSource;
  42. /**
  43. 代理方法
  44. */
  45. @property (nonatomic, weak) id <XLPageTitleViewDelegate> delegate;
  46. /**
  47. 选中位置
  48. */
  49. @property (nonatomic, assign) NSInteger selectedIndex;
  50. /**
  51. 上一次选中的位置
  52. */
  53. @property (nonatomic, assign) NSInteger lastSelectedIndex;
  54. /**
  55. 动画的进度
  56. */
  57. @property (nonatomic, assign) CGFloat animationProgress;
  58. /**
  59. 停止动画,在手动设置位置时,不显示动画效果
  60. */
  61. @property (nonatomic, assign) BOOL stopAnimation;
  62. /**
  63. 右侧按钮
  64. */
  65. @property (nonatomic, strong) UIButton *rightButton;
  66. /**
  67. 初始化方法
  68. @param config 配置信息
  69. @return TitleView 实例
  70. */
  71. - (instancetype)initWithConfig:(XLPageViewControllerConfig *)config;
  72. /**
  73. 刷新数据,当标题信息改变时调用
  74. */
  75. - (void)reloadData;
  76. /**
  77. 自定义标题栏时用到
  78. */
  79. - (void)registerClass:(Class)cellClass forTitleViewCellWithReuseIdentifier:(NSString *)identifier;
  80. /**
  81. cell 复用方法
  82. */
  83. - (__kindof XLPageTitleCell *)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndex:(NSInteger)index;
  84. @end
  85. NS_ASSUME_NONNULL_END