UIBarButtonItem+RQExtension.h 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. //
  2. // UIBarButtonItem+RQExtension.h
  3. // RQCommon
  4. //
  5. // Created by 张嵘 on 2018/11/16.
  6. // Copyright © 2018 张嵘. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. /// 获取系统颜色
  10. static inline UIColor *RQBarButtonItemTitleColor(BOOL useSystem) {
  11. return useSystem ? [UIColor systemGrayColor] : RQ_MAIN_COLOR;
  12. }
  13. @interface UIBarButtonItem (RQExtension)
  14. @property (strong, atomic) UILabel *badge;
  15. // Badge value to be display
  16. @property (nonatomic) NSString *badgeValue;
  17. // Badge background color
  18. @property (nonatomic) UIColor *badgeBGColor;
  19. // Badge text color
  20. @property (nonatomic) UIColor *badgeTextColor;
  21. // Badge font
  22. @property (nonatomic) UIFont *badgeFont;
  23. // Padding value for the badge
  24. @property (nonatomic) CGFloat badgePadding;
  25. // Minimum size badge to small
  26. @property (nonatomic) CGFloat badgeMinSize;
  27. // Values for offseting the badge over the BarButtonItem you picked
  28. @property (nonatomic) CGFloat badgeOriginX;
  29. @property (nonatomic) CGFloat badgeOriginY;
  30. // In case of numbers, remove the badge when reaching zero
  31. @property BOOL shouldHideBadgeAtZero;
  32. // Badge has a bounce animation when value changes
  33. @property BOOL shouldAnimateBadge;
  34. /**
  35. 通过系统的方法,初始化一个UIBarButtonItem
  36. @param title 显示的文字,例如'完成'、'取消'
  37. @param titleColor title的颜色,if nil ,The Color is [UIColor whiteColor]
  38. @param imageName 图片名称
  39. @param target target
  40. @param selector selector
  41. @param textType 是否是纯文字
  42. @return init a UIBarButtonItem
  43. */
  44. + (UIBarButtonItem *)rq_systemItemWithTitle:(NSString *)title
  45. titleColor:(UIColor *)titleColor
  46. imageName:(NSString *)imageName
  47. target:(id)target
  48. selector:(SEL)selector
  49. textType:(BOOL)textType;
  50. /**
  51. 通过自定义的方法,快速初始化一个UIBarButtonItem,内部是按钮
  52. @param title 显示的文字,例如'完成'、'取消'
  53. @param font 文字的字体
  54. @param titleColor title的颜色,if nil ,The Color is [UIColor whiteColor]
  55. @param imageName 图片名称
  56. @param target target
  57. @param selector selector
  58. @param contentHorizontalAlignment 文本对齐方向
  59. @param edgeInsetsStyle titleLabel和imageView的布局样式
  60. @param space 文字图片间距
  61. @return UIBarButtonItem
  62. */
  63. + (UIBarButtonItem *)rq_customItemWithTitle:(NSString *)title
  64. font:(UIFont *)font
  65. titleColor:(UIColor *)titleColor
  66. imageName:(NSString *)imageName
  67. target:(id)target
  68. selector:(SEL)selector
  69. contentHorizontalAlignment:(UIControlContentHorizontalAlignment)contentHorizontalAlignment
  70. EdgeInsetsStyle:(RQButtonEdgeInsetsStyle)edgeInsetsStyle
  71. space:(CGFloat)space;
  72. /**
  73. 快速创建一个导航栏leftBarButtonItem 用于返回(pop)或者(dismiss),切记只能是纯图片 (eg: < or X)
  74. 且可以加大点击范围
  75. @param title title
  76. @param imageName 返回按钮的图片
  77. @param target target
  78. @param action action
  79. @return UIBarButtonItem Instance
  80. */
  81. + (UIBarButtonItem *)rq_backItemWithTitle:(NSString *)title
  82. imageName:(NSString *)imageName
  83. target:(id)target
  84. action:(SEL)action;
  85. @end