UMSocialBar.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. //
  2. // UMSocialBar.h
  3. // SocialSDK
  4. //
  5. // Created by yeahugo on 13-7-2.
  6. // Copyright (c) 2013年 Umeng. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. #import "UMSocialSnsPlatformManager.h"
  10. #import "UMSocialControllerServiceComment.h"
  11. /**
  12. 分享
  13. */
  14. extern NSString *const UMSocialShare;
  15. /**
  16. 喜欢
  17. */
  18. extern NSString *const UMSocialLike;
  19. /**
  20. 评论
  21. */
  22. extern NSString *const UMSocialComment;
  23. /**
  24. 个人中心
  25. */
  26. extern NSString *const UMSocialAccount;
  27. typedef void (^ClickHandler)(void);
  28. /**
  29. 代表平台或者功能的按钮
  30. */
  31. @interface UMSocialButton : UIButton
  32. /**
  33. 点击按钮之后的响应事件
  34. */
  35. @property (nonatomic, copy) ClickHandler clickHandler;
  36. /**
  37. 当前`<UMSocialUIDelegate>`对象,此对象可以获取到授权完成,关闭页面等状态,详情看`UMSocialUIDelegate`的定义
  38. */
  39. @property (nonatomic, assign) id <UMSocialUIDelegate> socialUIDelegate;
  40. /**
  41. 按钮名称
  42. */
  43. @property (nonatomic, copy) NSString *buttonName;
  44. /**
  45. 按钮初始化方法
  46. @param buttonName 按钮类型,可以指定`UMSocialShare`,`UMSocialComment`,`UMSocialLike`、`UMSocialAccount`分别代表分享、评论、喜欢、个人中心
  47. 或者`UMShareToSina`、`UMShareToTencent`等代表各个微博平台
  48. @param socialData 数据对象,如果是评论或者喜欢,代表不同的评论、喜欢对象。可以传nil,使用默认数据对象
  49. @param controller 分享编辑页面、评论页面等将弹到的UIViewController对象
  50. */
  51. -(id)initWithButtonName:(NSString *)buttonName
  52. socialData:(UMSocialData *)socialData
  53. controller:(UIViewController *)controller;
  54. /**
  55. 按钮初始化方法
  56. @param buttonName 按钮类型,可以指定`UMSocialShare`,`UMSocialComment`,`UMSocialLike`、`UMSocialAccount`分别代表分享、评论、喜欢、个人中心
  57. 或者`UMShareToSina`、`UMShareToTencent`等代表各个微博平台
  58. @param controllerService UMSocialControllerService对象,如果是评论或者喜欢,代表不同的评论、喜欢对象。可以传nil,使用默认数据对象
  59. @param controller 分享编辑页面、评论页面等将弹到的UIViewController对象
  60. */
  61. -(id)initWithButtonName:(NSString *)buttonName
  62. controllerService:(UMSocialControllerServiceComment *)controllerService
  63. controller:(UIViewController *)controller;
  64. @end
  65. /**
  66. 社会化操作栏,默认集成了评论、喜欢、分享、个人中心等功能。
  67. 你可以根据你的需求对操作栏上的各个按钮进行定制,方法是修改barButtons数组。
  68. */
  69. @interface UMSocialBar : UIView
  70. /**
  71. 代表操作栏上所有按钮的数组,数组的元素是UMSocialButton对象。
  72. 你可以增加自定义的按钮,例如
  73. ```
  74. UMSocialButton *customButton = [[UMSocialButton alloc] initWithButtonType:@"custom" socialData:nil controller:nil];
  75. customButton.clickHandler = ^(){
  76. NSLog(@"click !!");
  77. };
  78. [customButton setImage:[UIImage imageNamed:@"icon"] forState:UIControlStateNormal];
  79. [_socialBar.barButtons addObject:customButton];
  80. ```
  81. 你可以删除指定的按钮
  82. ```
  83. [_socialBar.barButtons removeObjectAtIndex:1];
  84. ```
  85. 可以修改指定按钮
  86. ```
  87. UMSocialButton *socialButton1 = [_socialBar.barButtons objectAtIndex:1];
  88. socialButton1.clickHandler = ^(){
  89. NSLog(@"click!!");
  90. };
  91. ```
  92. */
  93. @property (nonatomic, retain) NSMutableArray *barButtons;
  94. /**
  95. `UMSocialData`对象,可以通过该对象设置分享内嵌文字、图片,获取分享数等属性
  96. */
  97. @property (nonatomic, retain) UMSocialData *socialData;
  98. /**
  99. 当前`<UMSocialUIDelegate>`对象,此对象可以获取到授权完成,关闭页面等状态,详情看`UMSocialUIDelegate`的定义
  100. */
  101. @property (nonatomic, assign) id <UMSocialUIDelegate> socialUIDelegate;
  102. /**
  103. 初始化方法
  104. @param socialData 标识不同分享对象
  105. @param viewController 分享编辑页面等弹出到的UIViewController对象
  106. */
  107. - (id)initWithUMSocialData:(UMSocialData *)socialData
  108. withViewController:(UIViewController *)viewController;
  109. /**
  110. 更新操作栏的数字
  111. */
  112. - (void)updateButtonNumber;
  113. /*
  114. 从线上获取分享、评论、喜欢等个数,更新按钮文字
  115. */
  116. - (void)requestUpdateButtonNumber;
  117. @end