TCViewPager.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. //
  2. // TCViewPager.h
  3. //
  4. // Created by 唐天成 on 16/8/28.
  5. // Copyright © 2016年 唐天成. All rights reserved.
  6. // 这个类是做简单分页用的
  7. //
  8. #import <UIKit/UIKit.h>
  9. @class TCViewPager;
  10. typedef void (^TC_VP_SelectedBlock)(TCViewPager *viewPager, NSInteger currentIndex, NSInteger previousIndex, BOOL isClickBtn);
  11. typedef void (^TC_VP_EditTagBlock)();
  12. @interface TCPageParam : NSObject
  13. //滑动是否动画
  14. @property (nonatomic, assign) BOOL animateScroll;
  15. //当前选择的菜单索引
  16. @property (nonatomic, assign) NSInteger selectIndex;
  17. //是否允许编辑标签列表
  18. @property (nonatomic, assign) NSInteger canEdit;
  19. //选中按钮下方横线背景颜色 默认为 blackColor
  20. @property (nonatomic, strong) UIColor *tabSelectedBottomLineColor;
  21. //选中按钮是否显示底部横线 默认NO
  22. @property (nonatomic, assign) BOOL showSelectedBottomLine;
  23. //选中按钮底部横线与按钮的宽度比例 //默认为1.0
  24. @property (nonatomic, assign) CGFloat selectedBottomLineScale;
  25. //菜单标题scrollView下方横线颜色
  26. @property (nonatomic, strong) UIColor *pageHeaderControlBottomLineColor;
  27. //菜单标题scrollView下方横线宽度
  28. @property (nonatomic, assign) CGFloat pageHeaderControlBottomLineWidth;
  29. //菜单标题scrollView下方横线高度
  30. @property (nonatomic, assign) CGFloat pageHeaderControlBottomLineHeight;
  31. //菜单按钮的标题未选中颜色 //默认 blackColor
  32. @property (nonatomic, strong) UIColor *tabTitleColor;
  33. //菜单按钮的标题选中颜色 //默认 redColor
  34. @property (nonatomic, strong) UIColor *tabSelectedTitleColor;
  35. //菜单按钮之前的间距
  36. @property (nonatomic, assign) CGFloat titlePageSpace;
  37. //菜单按钮选中后与未选中前的比例 默认为1.0
  38. @property (nonatomic, assign) CGFloat selectedLabelBigScale;
  39. //菜单按钮的标题Font //默认为[UIFont systemFontOfSize:15];
  40. @property (nonatomic, strong) UIFont *labelFont;
  41. //顶部pageHeaderControl滚动条高度 //默认40
  42. @property (nonatomic, assign)CGFloat pageHeaderHeight;
  43. //顶部pageHeaderControl滚动条最左边按钮距离左边的间距 最右边按钮距离右边的间距
  44. @property (nonatomic, assign)CGFloat leftAndRightSpace;
  45. //顶部pageHeaderControl底下的渐变层 //默认为YES
  46. @property (nonatomic, assign)BOOL showBottomGradientLayer ;
  47. //顶部pageHeaderControl底下的渐变层颜色 //默认@[MYRGBACOLOR(239,242,241,1), MYRGBACOLOR(239,242,241,0.0)];
  48. @property (nonatomic, strong) NSArray *bottomGradientColorArr;
  49. //顶部pageHeaderControl底下的渐变层大小 //默认6
  50. @property (nonatomic, assign) CGFloat bottomGradientH;
  51. //菜单的文本label
  52. @property (nonatomic, strong) NSMutableArray *titleArray;
  53. //菜单标题数组长度
  54. @property (nonatomic, strong) NSArray *titleArrayLength;
  55. //背景颜色
  56. @property (nonatomic, strong) UIColor *viewPagerBgColor;
  57. @end
  58. @interface TCViewPager : UIView<UIScrollViewDelegate>
  59. //视图
  60. @property (nonatomic, strong, readonly) NSArray *views;
  61. @property (nonatomic, assign, readonly) NSInteger currentIndex;
  62. /**
  63. * 当前选择的控制器
  64. */
  65. @property (nonatomic, strong) UIViewController *selectController;
  66. /**
  67. * 点击菜单按钮时 调用的block方法
  68. *
  69. * @param block 返回YFViewPager本身和点击的按钮的索引值,从左到右一次是0,1,2,3...
  70. */
  71. - (void)didSelectedBlock:(TC_VP_SelectedBlock)block;
  72. - (void)editTagBtnClickBlock:(TC_VP_EditTagBlock)block;
  73. /**
  74. * 初始化 TCViewPager的方法
  75. *
  76. * @param frame frame
  77. * @param views 视图数组 可以是view,也可以是Viewcontroler,也可以混合有些传view有些传ViewController(我喜欢全用ViewController) 和标题数组一一对应
  78. * @param param 配置param 这个如果设置为nil的话,那么就按照默认的配置来运行
  79. * @return TCViewPager
  80. */
  81. - (id)initWithFrame:(CGRect)frame
  82. views:(NSArray *)views
  83. param:(TCPageParam *)param;
  84. - (void)changeSelectedIndex:(NSInteger)selectIndex;
  85. //修改某一个标题的名字
  86. - (void)setTitle:(NSString *)title forSegmentAtIndex:(NSInteger)index;
  87. @end