Bez popisu

SGPageTitleView.h 3.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. //
  2. // SGPageTitleView.h
  3. // SGPagingViewExample
  4. //
  5. // Created by kingsic on 17/4/10.
  6. // Copyright © 2017年 kingsic. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. @class SGPageTitleViewConfigure, SGPageTitleView;
  10. typedef enum : NSUInteger {
  11. /// 图片在左,文字在右
  12. SGImagePositionTypeDefault,
  13. /// 图片在右,文字在左
  14. SGImagePositionTypeRight,
  15. /// 图片在上,文字在下
  16. SGImagePositionTypeTop,
  17. /// 图片在下,文字在上
  18. SGImagePositionTypeBottom,
  19. } SGImagePositionType;
  20. @protocol SGPageTitleViewDelegate <NSObject>
  21. /**
  22. * 联动 pageContent 的方法
  23. *
  24. * @param pageTitleView SGPageTitleView
  25. * @param selectedIndex 选中按钮的下标
  26. */
  27. - (void)pageTitleView:(SGPageTitleView *)pageTitleView selectedIndex:(NSInteger)selectedIndex;
  28. @end
  29. @interface SGPageTitleView : UIView
  30. /**
  31. * 对象方法创建 SGPageTitleView
  32. *
  33. * @param frame frame
  34. * @param delegate delegate
  35. * @param titleNames 标题数组
  36. * @param configure SGPageTitleView 信息配置
  37. */
  38. - (instancetype)initWithFrame:(CGRect)frame delegate:(id<SGPageTitleViewDelegate>)delegate titleNames:(NSArray *)titleNames configure:(SGPageTitleViewConfigure *)configure;
  39. /**
  40. * 类方法创建 SGPageTitleView
  41. *
  42. * @param frame frame
  43. * @param delegate delegate
  44. * @param titleNames 标题数组
  45. * @param configure SGPageTitleView 信息配置
  46. */
  47. + (instancetype)pageTitleViewWithFrame:(CGRect)frame delegate:(id<SGPageTitleViewDelegate>)delegate titleNames:(NSArray *)titleNames configure:(SGPageTitleViewConfigure *)configure;
  48. /** 给外界提供的方法,获取 PageContent 的 progress/originalIndex/targetIndex, 必须实现 */
  49. - (void)setPageTitleViewWithProgress:(CGFloat)progress originalIndex:(NSInteger)originalIndex targetIndex:(NSInteger)targetIndex;
  50. /** 选中标题按钮下标,默认为 0 */
  51. @property (nonatomic, assign) NSInteger selectedIndex;
  52. /** 重置选中标题按钮下标(用于子控制器内的点击事件改变标题的选中下标)*/
  53. @property (nonatomic, assign) NSInteger resetSelectedIndex;
  54. /** 根据标题下标值添加 badge */
  55. - (void)addBadgeForIndex:(NSInteger)index;
  56. /** 根据标题下标值移除 badge */
  57. - (void)removeBadgeForIndex:(NSInteger)index;
  58. /** 根据标题下标值重置标题文字 */
  59. - (void)resetTitle:(NSString *)title forIndex:(NSInteger)index;
  60. /** 重置指示器颜色 */
  61. - (void)resetIndicatorColor:(UIColor *)color;
  62. /** 重置标题普通状态、选中状态下文字颜色 */
  63. - (void)resetTitleColor:(UIColor *)color titleSelectedColor:(UIColor *)selectedColor;
  64. /** 重置标题普通状态、选中状态下文字颜色及指示器颜色方法 */
  65. - (void)resetTitleColor:(UIColor *)color titleSelectedColor:(UIColor *)selectedColor indicatorColor:(UIColor *)indicatorColor;
  66. /** 根据标题下标值设置标题的 attributedTitle 属性 */
  67. - (void)setAttributedTitle:(NSMutableAttributedString *)attributedTitle selectedAttributedTitle:(NSMutableAttributedString *)selectedAttributedTitle forIndex:(NSInteger)index;
  68. /**
  69. * 设置标题图片及位置样式
  70. *
  71. * @param images 默认图片名数组
  72. * @param selectedImages 选中图片名数组
  73. * @param imagePositionType 图片位置样式
  74. * @param spacing 图片与标题文字之间的间距
  75. */
  76. - (void)setImages:(NSArray *)images selectedImages:(NSArray *)selectedImages imagePositionType:(SGImagePositionType)imagePositionType spacing:(CGFloat)spacing;
  77. /**
  78. * 根据标题下标设置标题图片及位置样式
  79. *
  80. * @param image 默认图片名
  81. * @param selectedImage 选中图片名
  82. * @param imagePositionType 图片位置样式
  83. * @param spacing 图片与标题文字之间的间距
  84. * @param index 标题对应下标值
  85. */
  86. - (void)setImage:(NSString *)image selectedImage:(NSString *)selectedImage imagePositionType:(SGImagePositionType)imagePositionType spacing:(CGFloat)spacing forIndex:(NSInteger)index;
  87. @end