YPTabItem.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. //
  2. // YPTabItem.h
  3. // YPTabBarController
  4. //
  5. // Created by 喻平 on 15/8/11.
  6. // Copyright (c) 2015年 YPTabBarController. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. /**
  10. * Badge样式
  11. */
  12. typedef NS_ENUM(NSInteger, YPTabItemBadgeStyle) {
  13. YPTabItemBadgeStyleNumber = 0, // 数字样式
  14. YPTabItemBadgeStyleDot = 1, // 小圆点
  15. };
  16. @interface YPTabItem : UIButton
  17. /**
  18. * item在tabBar中的index
  19. */
  20. @property (nonatomic, assign) NSInteger index;
  21. @property (nonatomic, assign, readonly) CGRect frameWithOutTransform;
  22. @property (nonatomic, copy) NSString *title;
  23. @property (nonatomic, strong) UIColor *titleColor;
  24. @property (nonatomic, strong) UIColor *titleSelectedColor;
  25. @property (nonatomic, strong) UIFont *titleFont;
  26. @property (nonatomic, strong) UIImage *image;
  27. @property (nonatomic, strong) UIImage *selectedImage;
  28. /**
  29. * badge > 99,显示99+
  30. * badge <= 99 && badge > 0,显示具体数值
  31. * badge == 0,隐藏badge
  32. * badge < 0,显示一个小圆点,即YPTabItemBadgeStyleDot
  33. */
  34. @property (nonatomic, assign) NSInteger badge;
  35. @property (nonatomic, assign) YPTabItemBadgeStyle badgeStyle;
  36. /**
  37. * badge的背景颜色
  38. */
  39. @property (nonatomic, strong) UIColor *badgeBackgroundColor;
  40. /**
  41. * badge的背景图片
  42. */
  43. @property (nonatomic, strong) UIImage *badgeBackgroundImage;
  44. /**
  45. * badge的标题颜色
  46. */
  47. @property (nonatomic, strong) UIColor *badgeTitleColor;
  48. /**
  49. * badge的标题字体,默认13号
  50. */
  51. @property (nonatomic, strong) UIFont *badgeTitleFont;
  52. /**
  53. * 设置Image和Title水平居中
  54. */
  55. @property (nonatomic, assign, getter = isContentHorizontalCenter) BOOL contentHorizontalCenter;
  56. /**
  57. * 设置Image和Title水平居中
  58. *
  59. * @param verticalOffset 竖直方向的偏移量
  60. * @param spacing Image与Title的间距
  61. */
  62. - (void)setContentHorizontalCenterWithVerticalOffset:(CGFloat)verticalOffset
  63. spacing:(CGFloat)spacing;
  64. /**
  65. * 添加双击事件回调
  66. */
  67. - (void)setDoubleTapHandler:(void (^)(void))handler;
  68. /**
  69. * 设置数字Badge的位置
  70. *
  71. * @param marginTop 与TabItem顶部的距离
  72. * @param centerMarginRight badge的中心与TabItem右侧的距离
  73. * @param titleHorizonalSpace Badge的标题水平方向的空间
  74. * @param titleVerticalSpace Badge的标题竖直方向的空间
  75. */
  76. - (void)setNumberBadgeMarginTop:(CGFloat)marginTop
  77. centerMarginRight:(CGFloat)centerMarginRight
  78. titleHorizonalSpace:(CGFloat)titleHorizonalSpace
  79. titleVerticalSpace:(CGFloat)titleVerticalSpace;
  80. /**
  81. * 设置小圆点Badge的位置
  82. *
  83. * @param marginTop 与TabItem顶部的距离
  84. * @param centerMarginRight badge的中心与TabItem右侧的距离
  85. * @param sideLength 小圆点的边长
  86. */
  87. - (void)setDotBadgeMarginTop:(CGFloat)marginTop
  88. centerMarginRight:(CGFloat)centerMarginRight
  89. sideLength:(CGFloat)sideLength;
  90. @end