Nav apraksta

UMSocialShareUIConfig.h 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. //
  2. // UMSocialShareUIConfig.h
  3. // UMSocialSDK
  4. //
  5. // Created by 张军华 on 16/11/7.
  6. // Copyright © 2016年 UMeng. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. #import <Foundation/Foundation.h>
  10. #import <UMSocialCore/UMSocialCore.h>
  11. #import "UMSocialUIUtility.h"
  12. @class UMSocialSharePageGroupViewConfig;
  13. @class UMSocialShareContainerConfig;
  14. @class UMSocialShareTitleViewConfig;
  15. @class UMSocialSharePageScrollViewConfig;
  16. @class UMSocialSharePageControlConfig;
  17. @class UMSocialShareCancelControlConfig;
  18. @class UMSocialSharePageControl;
  19. @class UMSocialSharePageScrollView;
  20. @class UMSocialPlatformItemViewConfig;
  21. typedef void(^UMSocialSharePlatformSelectionBlock)(UMSocialPlatformType platformType,NSDictionary* userInfo);
  22. /**
  23. * 分享面板的代码,目前只提供显示,隐藏和指定父窗口
  24. */
  25. @protocol UMSocialShareMenuViewDelegate <NSObject>
  26. @optional
  27. /**
  28. * 分享面板显示的回调
  29. */
  30. - (void)UMSocialShareMenuViewDidAppear;
  31. /**
  32. * 分享面板的消失的回调
  33. */
  34. - (void)UMSocialShareMenuViewDidDisappear;
  35. /**
  36. * 返回分享面板的父窗口,用于嵌入在父窗口上显示
  37. *
  38. * @param defaultSuperView 默认加载的父窗口
  39. *
  40. * @return 返回实际的父窗口
  41. * @note 返回的view应该是全屏的view,方便分享面板来布局。
  42. * @note 如果用户要替换成自己的ParentView,需要保证该view能覆盖到navigationbar和statusbar
  43. * @note 当前分享面板已经是在window上,如果需要切换就重写此协议,如果不需要改变父窗口则不需要重写此协议
  44. */
  45. - (UIView*)UMSocialParentView:(UIView*)defaultSuperView;
  46. @end
  47. /**
  48. * 点击平台的代理
  49. */
  50. @protocol UMSocialHandlePlatformTypeDelegate <NSObject>
  51. @optional
  52. /**
  53. * 点击分享面板的回调
  54. *
  55. * @param platformType 平台类型 @see UMSocialPlatformType
  56. * @param userInfo 点击对应平台类型附带的userinfo,字典类型可为nil
  57. */
  58. - (void)handlePlatformType:(UMSocialPlatformType)platformType withUserInfo:(NSDictionary*)userInfo;
  59. @end
  60. /**
  61. * 滑动分页scrollview的代理
  62. */
  63. @protocol UMSocialHandlePlatformTypeDelegate;
  64. @protocol UMSocialSharePageScrollViewDelegate <NSObject>
  65. @optional
  66. /**
  67. * 滑动分页scrollview的代理
  68. *
  69. * @param sharePageScrollView UMSocialSharePageScrollView的对象
  70. * @param numberOfPages 当前的分页总数
  71. * @param currentPage 当前页的index
  72. */
  73. - (void)handleSocialSharePageScrollView:(UMSocialSharePageScrollView *)sharePageScrollView
  74. withNumberOfPages:(NSInteger)numberOfPages
  75. withCurrentPage:(NSInteger)currentPage;
  76. @end
  77. /**
  78. * 点击pageControl的事件的代理
  79. */
  80. @protocol UMSocialSharePageControlDelegate <NSObject>
  81. @optional
  82. - (void)handleSocialSharePageControl:(UMSocialSharePageControl*)sharePageControl withNewPage:(NSInteger)newPage;
  83. @end
  84. typedef NS_ENUM(NSUInteger, UMSocialSharePageGroupViewPositionType){
  85. UMSocialSharePageGroupViewPositionType_Bottom,//显示在底部
  86. UMSocialSharePageGroupViewPositionType_Middle,//显示在中间
  87. };
  88. typedef NS_ENUM(NSUInteger, UMSocialPlatformItemViewBackgroudType){
  89. UMSocialPlatformItemViewBackgroudType_None,//有图片,没有圆背景,
  90. UMSocialPlatformItemViewBackgroudType_IconAndBGRadius,//有图片,圆背景,
  91. UMSocialPlatformItemViewBackgroudType_IconAndBGRoundAndSuperRadius,//有图片,圆角背景,
  92. };
  93. /**
  94. * 分享面板的配置类
  95. */
  96. @interface UMSocialShareUIConfig : NSObject
  97. +(UMSocialShareUIConfig*)shareInstance;
  98. @property(nonatomic,readwrite,strong)UMSocialSharePageGroupViewConfig* sharePageGroupViewConfig;
  99. @property(nonatomic,readwrite,strong)UMSocialShareContainerConfig* shareContainerConfig;
  100. @property(nonatomic,readwrite,strong)UMSocialShareTitleViewConfig* shareTitleViewConfig;
  101. @property(nonatomic,readwrite,strong)UMSocialSharePageScrollViewConfig* sharePageScrollViewConfig;
  102. @property(nonatomic,readwrite,strong)UMSocialPlatformItemViewConfig* sharePlatformItemViewConfig;
  103. @property(nonatomic,readwrite,strong)UMSocialSharePageControlConfig* sharePageControlConfig;
  104. @property(nonatomic,readwrite,strong)UMSocialShareCancelControlConfig* shareCancelControlConfig;
  105. @end
  106. /**
  107. * ShareMenuSelection的配置类
  108. */
  109. @interface UMSocialSharePageGroupViewConfig : NSObject
  110. @property(nonatomic,readwrite,strong)UIColor* sharePageGroupViewBackgroundColor;//背景颜色
  111. @property(nonatomic,readwrite,strong)UIColor* sharePageGroupViewMaskColor;//分享菜单整个背景
  112. @property(nonatomic,readwrite,assign)CGFloat sharePageGroupViewMaskViewAlpha;//分享菜单整个背景的Alpha
  113. @property (nonatomic,readwrite,assign)UMSocialSharePageGroupViewPositionType sharePageGroupViewPostionType;//分享面板类的位置@see UMSocialSharePageGroupViewPositionType
  114. @end
  115. /**
  116. * ShareContainer的配置类
  117. */
  118. @interface UMSocialShareContainerConfig : NSObject
  119. @property(nonatomic,readwrite,assign)CGFloat shareContainerMarginTop;//相对父view的上边距
  120. @property(nonatomic,readwrite,assign)CGFloat shareContainerMarginBottom;//相对父view的下边距
  121. @property(nonatomic,readwrite,assign)CGFloat shareContainerMarginLeft;//相对父view的左边距
  122. @property(nonatomic,readwrite,assign)CGFloat shareContainerMarginRight;//相对父view的右边距
  123. @property(nonatomic,readwrite,assign)CGFloat shareContainerMarginLeftForMid;//相对父view的左边距如果sharePageGroupViewPostionType为UMSocialSharePageGroupViewPositionType_Middle的时候
  124. @property(nonatomic,readwrite,assign)CGFloat shareContainerMarginRightForMid;//相对父view的右边距相对父view的左边距如果sharePageGroupViewPostionType为UMSocialSharePageGroupViewPositionType_Middle的时候
  125. @property(nonatomic,readwrite,assign)CGFloat shareContainerCornerRadius;//圆角
  126. @property(nonatomic,readwrite,strong)UIColor* shareContainerBackgroundColor;//背景色
  127. //设置ShareContainer左右渐变显示的参数
  128. @property(nonatomic,readwrite,assign)BOOL isShareContainerHaveGradient;//是否开启渐变当滑动到边缘的时候
  129. @property(nonatomic,readwrite,strong)UIColor* shareContainerGradientStartColor;//渐变开始的颜色
  130. @property(nonatomic,readwrite,strong)UIColor* shareContainerGradientEndColor;//渐变结束的颜色
  131. @property(nonatomic,readwrite,assign)CGFloat shareContainerGradientLeftWidth;//左边的渐变宽度
  132. @property(nonatomic,readwrite,assign)CGFloat shareContainerGradientRightWidth;//右边的渐变宽度
  133. @end
  134. /**
  135. * ShareTitleView的配置类
  136. */
  137. @interface UMSocialShareTitleViewConfig : NSObject
  138. @property(nonatomic,readwrite,assign)BOOL isShow;//是否显示
  139. @property(nonatomic,readwrite,strong)NSString* shareTitleViewTitleString;//标题的文字
  140. @property(nonatomic,readwrite,strong)UIFont* shareTitleViewFont;//字体
  141. @property(nonatomic,readwrite,strong)UIColor* shareTitleViewTitleColor;//文字颜色
  142. //shareContainerPaddingLeft
  143. @property(nonatomic,readwrite,strong)UIColor* shareTitleViewBackgroundColor;//背景颜色
  144. @property(nonatomic,readwrite,assign)CGFloat shareTitleViewPaddingTop;//title的内边距top
  145. @property(nonatomic,readwrite,assign)CGFloat shareTitleViewPaddingBottom;//title的内边距Bottom
  146. @end
  147. /**
  148. * ShareScrollView的配置类
  149. */
  150. @interface UMSocialSharePageScrollViewConfig : NSObject
  151. @property(nonatomic,readwrite,strong)UIColor* shareScrollViewBackgroundColor;//shareScrollView背景色
  152. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageRowSpace;//每页的行间距
  153. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageColumnSpace;//每页的列间距(在设置了shareScrollViewPageMaxItemWidth后,列间距会变化一般设置只是估算每行的容纳的item的个数)
  154. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMarginLeft; //每页的左边距
  155. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMarginRight; //每页的右边距
  156. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMarginTop; //每页的上边距
  157. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMarginBottom; //每页的下边距
  158. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPadingLeft; //ScrollView的Left外边距(相对与父窗口)
  159. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPadingRight; //ScrollView的Right外边距(相对与父窗口)
  160. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPadingTop; //ScrollView的Top边距(相对与父窗口)
  161. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPadingBottom; //ScrollView的Bottom边距(相对与父窗口)
  162. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMaxItemWidth; //每页Items的最大宽度
  163. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMaxItemHeight; //每页Items的最大高度
  164. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMaxItemBGWidth; //每页Item内部icon下背景的宽度与shareScrollViewPageMaxItemWidth相同
  165. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMaxItemBGHeight; //每页Item内部icon下背景的高度与shareScrollViewPageMaxItemBGWidth相同
  166. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMaxItemIconWidth; //每页Item内部icon下宽度
  167. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMaxItemIconHeight; //每页Item内部icon下高度
  168. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMaxItemSpaceBetweenIconAndName; //每页Item背景和icon的上下间距
  169. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMaxItemNameHeight; //每页Item的name的高度
  170. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMaxItemNameWidth; //每页Item的name的宽度,和shareScrollViewPageMaxItemBGWidth一样
  171. @property(nonatomic,readwrite,strong)UIColor* shareScrollViewPageBGColor; //每页的背景颜色
  172. @property(nonatomic,readwrite,assign)UMSocialPlatformItemViewBackgroudType shareScrollViewPageItemStyleType;//@see UMSocialPlatformItemViewBackgroudType
  173. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMaxRowCountForPortraitAndBottom; //每页显示最大的行(在底部显示手机处于肖像模式)
  174. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMaxColumnCountForPortraitAndBottom; //每页显示最大的列(在底部显示手机处于肖像模式)
  175. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMaxRowCountForLandscapeAndBottom; //每页显示最大的行(在底部显示手机处于风景模式)
  176. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMaxColumnCountForLandscapeAndBottom; //每页显示最大的列(在底部显示手机处于风景模式)
  177. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMaxRowCountForPortraitAndMid; //每页显示最大的行(在中间显示手机处于肖像模式)
  178. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMaxColumnCountForPortraitAndMid; //每页显示最大的列(在中间显示手机处于肖像模式)
  179. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMaxRowCountForLandscapeAndMid; //每页显示最大的行(在中间显示手机处于风景模式)
  180. @property(nonatomic,readwrite,assign)CGFloat shareScrollViewPageMaxColumnCountForLandscapeAndMid; //每页显示最大的列(在中间显示手机处于风景模式)
  181. @end
  182. /**
  183. * 每个page内Item的配置类
  184. */
  185. @interface UMSocialPlatformItemViewConfig : NSObject
  186. @property(nonatomic,readwrite,strong)UIColor* sharePlatformItemViewBGRadiusColor; //有圆角背景时的颜色
  187. @property(nonatomic,readwrite,strong)UIColor* sharePlatformItemViewBGRadiusColorPressed;//有圆角背景时的按下颜色
  188. @property(nonatomic,readwrite,strong)UIColor* sharePlatformItemViewPlatformNameColor;//平台的颜色
  189. @end
  190. /**
  191. * SharePageControl的配置类
  192. */
  193. @interface UMSocialSharePageControlConfig : NSObject
  194. @property(nonatomic,readwrite,assign)BOOL isShow;//是否显示
  195. @property(nonatomic,readwrite,strong)UIColor* sharePageControlPageIndicatorTintColor;//指示器颜色
  196. @property(nonatomic,readwrite,strong)UIColor* sharePageControlCurrentPageIndicatorTintColor;//当前的页的颜色
  197. @property(nonatomic,readwrite,assign)BOOL sharePageControlHidesForSinglePage;//为一页是会隐藏
  198. @property(nonatomic,readwrite,strong)UIColor* sharePageControlBackgroundColor;//背景色
  199. @end
  200. /**
  201. * ShareCancelControl的配置类
  202. */
  203. @interface UMSocialShareCancelControlConfig : NSObject
  204. @property(nonatomic,readwrite,assign)BOOL isShow;//是否显示
  205. @property(nonatomic,readwrite,strong)NSString* shareCancelControlText;//相对父view的左边距
  206. @property(nonatomic,readwrite,strong)UIColor* shareCancelControlTextColor;//文字颜色
  207. @property(nonatomic,readwrite,strong)UIFont* shareCancelControlTextFont;//文字字体
  208. @property(nonatomic,readwrite,strong)UIColor* shareCancelControlBackgroundColor;//背景颜色;
  209. @property(nonatomic,readwrite,strong)UIColor* shareCancelControlBackgroundColorPressed;//点击时的按下颜色
  210. @end