CSJCoverView.h 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. //
  2. // CSJCoverView.h
  3. // CSJAdSDK
  4. //
  5. // Created by Rush.D.Xzj on 2020/9/20.
  6. // Copyright © 2020 bytedance. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. #import "CSJAdSDKManager+Private.h"
  10. #import "CSJAdInfoViewModel.h"
  11. #import "CSJRenderClickEventModel.h"
  12. NS_ASSUME_NONNULL_BEGIN
  13. //@class CSJAdInfoViewModel;
  14. @class CSJNativeAd;
  15. @class CSJCoverView;
  16. @protocol CSJCoverViewDelegate <NSObject>
  17. - (void)coverViewClick:(CSJCoverView *)coverView areaCategory:(BUExpressClickAreaCategory)areaCategory clickExtraInfo:(NSDictionary *)clickExtraInfoDic;
  18. - (void)coverViewClickVideo:(CSJCoverView *)coverView;
  19. - (void)coverViewClickClose:(CSJCoverView *)coverView;
  20. - (void)coverViewClickAdLogo:(CSJCoverView *)coverView;
  21. - (void)coverViewClickDownload:(CSJCoverView *)coverView clickExtraInfo:(NSDictionary *)clickExtraInfoDic;
  22. @end
  23. // 动态布局的兜底View
  24. // 因为一些历史原因,当前此View,大致分为如下的几种组成样式
  25. // 1. 图片和相关文案控件
  26. // 2. 视频播放器和相关文案控件,此视频播放器是兜底View负责管理
  27. // 3. 视频播放器和相关文案控件,此视频播放器是动态布局View负责管理
  28. @interface CSJCoverView : UIView
  29. @property (nonatomic, strong) UIImageView *imageView;
  30. @property (nonatomic, weak) id<CSJCoverViewDelegate> delegate;
  31. // 这两个属性需要相关的子类重写
  32. /// 使用BUVideoView兜底时的视频播放时间
  33. @property (nonatomic, assign, readonly) CGFloat playerCurrentTime;
  34. /// 使用BUVideoView兜底时的视频总时间,不精确
  35. @property (nonatomic, assign, readonly) CGFloat playerTotalTime;
  36. @property (nonatomic, strong, readonly) CSJAdInfoViewModel *infoViewModel;
  37. /// 类方法 由于历史遗留问题 needRemovePlayerView 和 isVideoBackup
  38. /// @param recommendViewSize 建议的view大小
  39. /// @param nativeAd 广告数据
  40. /// @param needRemovePlayerView 是否需要移除动态布局的视频播放器
  41. /// @param isVideoBackup 是否是视频兜底,是否使用动态布局的视频播放器
  42. + (instancetype)coverViewWithRecommendViewSize:(CGSize)recommendViewSize nativeAd:(CSJNativeAd *)nativeAd needRemovePlayerView:(BOOL *)needRemovePlayerView isVideoBackup:(BOOL *)isVideoBackup;
  43. //+ (instancetype)coverViewWithRecommendViewSize:(CGSize)recommendViewSize infoViewModel:(CSJAdInfoViewModel *)infoViewModel needRemovePlayerView:(BOOL *)needRemovePlayerView isVideoBackup:(BOOL *)isVideoBackup;
  44. - (void)updateWithDarkMode:(BOOL)darkMode;
  45. - (void)backViewAction:(nullable UIView *)clickView;
  46. - (UIView *)playerViewContainerView;
  47. @end
  48. NS_ASSUME_NONNULL_END