YOUPAILZDiscoverVC.m 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474
  1. //
  2. // YOUPAILZDiscoverVC.m
  3. // VQU
  4. //
  5. // Created by CY on 2021/7/1.
  6. // Copyright © 2021 leo. All rights reserved.
  7. //
  8. #import "YOUPAILZDiscoverVC.h"
  9. #import "JXCategoryView.h"
  10. #import "JXCategoryListContainerView.h"
  11. #import "YOUPAILZDynamicVC.h"
  12. #import "YOUPAIZYShortVideoVC.h"
  13. #import "YOUPAILCSendImageDynamicVC.h"
  14. #import "YOUPAIZYSendVideoVC.h"
  15. #import "QQPopMenuView.h"
  16. #import "YOUPAIZYSendVideoByLocalVC.h"
  17. #import "YOUPAIVideoEditVC.h"//裁剪编辑页面
  18. #import "YOUPAISHMediaManager.h"//直接裁剪类
  19. #import "YOUPAIZYSendVideoByLinkVC.h"
  20. #import "YOUPAILCBaseDynamicVC.h"
  21. #import "YOUPAILZCheckDynamicTypeWindow.h"
  22. #import "UIViewController+TFPresent.h"
  23. #define LZCategoryViewHeight 54.0f
  24. #define LZCategoryViewItemWidth 64.0f
  25. @interface YOUPAILZDiscoverVC ()<JXCategoryViewDelegate ,JXCategoryListContainerViewDelegate>
  26. @property (nonatomic, weak) JXCategoryListContainerView *youpaippagerView;
  27. @property (nonatomic, weak) JXCategoryTitleView *youpaipcategoryView;
  28. @property (nonatomic, weak) UIView *youpaipcategoryBgV;
  29. @property (strong, nonatomic) UIButton *dynamicMsgButn;
  30. @end
  31. @implementation YOUPAILZDiscoverVC
  32. //- (UIStatusBarStyle)preferredStatusBarStyle{
  33. // return UIStatusBarStyleLightContent;
  34. //}
  35. - (void)viewWillAppear:(BOOL)animated{
  36. [super viewWillAppear:animated];
  37. [self.navigationController setNavigationBarHidden:YES animated:animated];
  38. [UMengRecordTool umengEnterViewWithName:NSStringFromClass(self.class)];
  39. }
  40. - (void)viewWillDisappear:(BOOL)animated{
  41. [super viewWillDisappear:animated];
  42. [self.navigationController setNavigationBarHidden:NO animated:animated];
  43. [UMengRecordTool umengOutViewWithName:NSStringFromClass(self.class)];
  44. }
  45. - (void)viewDidLoad {
  46. [super viewDidLoad];
  47. // NSLog(@"%@",LCStr(word7));
  48. [self youpaifinitUI];
  49. }
  50. - (void)youpaifinitUI{
  51. UIView *categoryBgV = [[UIView alloc] init];//WithFrame:CGRectMake(0.0f, 0.0f, KScreenWidth, LZCategoryViewHeight + StatusBarHeight)
  52. categoryBgV.backgroundColor = [UIColor whiteColor];//LCBkgColor;
  53. // UIImageView *topBgImgv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ym_messages_top_bg"]];
  54. // topBgImgv.frame = CGRectMake(0, 0, kScreenWidth, StatusBarHeight + LZCategoryViewHeight);
  55. // [self.view addSubview:topBgImgv];
  56. JXCategoryTitleView *categoryView = [[JXCategoryTitleView alloc] init]; //WithFrame:CGRectMake(0.0f, StatusBarHeight, KScreenWidth - 16 * 2.0f - 24, LZCategoryViewHeight)
  57. categoryView.backgroundColor = [UIColor clearColor];
  58. categoryView.titles = self.titles;
  59. categoryView.delegate = self;
  60. categoryView.titleSelectedColor = LZ273145Color;
  61. categoryView.titleColor = LZA3AABEColor;
  62. categoryView.titleColorGradientEnabled = YES;
  63. categoryView.titleFont = LCFont(17.0f);
  64. categoryView.titleSelectedFont = LCBoldFont(22.0f);
  65. // categoryView.cellWidth = LZCategoryViewItemWidth;
  66. // categoryView.cellSpacing = 20.0f;
  67. categoryView.cellWidth = adapt(53);
  68. categoryView.cellSpacing = 0;
  69. categoryView.averageCellSpacingEnabled = NO;
  70. [categoryBgV addSubview:categoryView];
  71. self.youpaipcategoryView = categoryView;
  72. // UIButton *dynamicMsgButn = [[UIButton alloc] initWithFrame:CGRectMake(KScreenWidth - 16 - 48,(LZCategoryViewHeight - 44) / 2.0f + StatusBarHeight,48,50)];
  73. // [dynamicMsgButn setImage:[UIImage imageNamed:@"ym_messages_more_icon"] forState:(UIControlStateNormal)];
  74. // [dynamicMsgButn addTarget:self action:@selector(youpaiDynamicMsgButnClick:) forControlEvents:(UIControlEventTouchUpInside)];
  75. // [categoryBgV addSubview:dynamicMsgButn];
  76. // UIButton* sendDynamicBtn = [[UIButton alloc]init]; //WithFrame:CGRectMake(KScreenWidth - 16 - 24,(LZCategoryViewHeight - 44) / 2.0f + StatusBarHeight,24,44)
  77. // [sendDynamicBtn setImage:[UIImage imageNamed:@"vqu_images_D_discover_send"] forState:(UIControlStateNormal)];
  78. // [sendDynamicBtn addTarget:self action:@selector(youpaifsendDynamicClick:) forControlEvents:(UIControlEventTouchUpInside)];
  79. // [categoryBgV addSubview:sendDynamicBtn];
  80. // JXCategoryIndicatorLineView *lineView = [[JXCategoryIndicatorLineView alloc] init];
  81. // lineView.verticalMargin = 10.0f;
  82. // lineView.indicatorHeight = 3.0f;
  83. // lineView.indicatorWidth = 10.0f;
  84. // lineView.indicatorColor = LZ7C69FEColor;
  85. // categoryView.indicators = @[lineView];
  86. JXCategoryIndicatorImageView *indicatorImageView = [[JXCategoryIndicatorImageView alloc] init];
  87. //indicatorImageView.indicatorImageView.image = [UIImage imageNamed:@"home_indicator_img"];
  88. indicatorImageView.indicatorImageViewSize = CGSizeMake(adapt(68), LZCategoryViewHeight + adapt(5));
  89. UIImageView *indicatorImgv = [[UIImageView alloc] init];
  90. indicatorImgv.image = [UIImage imageNamed:@"home_indicator_img"];
  91. indicatorImgv.contentMode = UIViewContentModeScaleAspectFit;
  92. [indicatorImageView addSubview:indicatorImgv];
  93. [indicatorImgv mas_makeConstraints:^(MASConstraintMaker *make) {
  94. make.centerX.equalTo(indicatorImageView);
  95. make.centerY.equalTo(indicatorImageView).offset(5);
  96. make.width.mas_equalTo(adapt(68));
  97. make.height.mas_equalTo(adapt(38));
  98. }];
  99. categoryView.indicators = @[indicatorImageView];
  100. JXCategoryListContainerView *pagerView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_CollectionView delegate:self];
  101. pagerView.listCellBackgroundColor = [UIColor clearColor];
  102. // pagerView.frame = CGRectMake(0.0f, categoryBgV.mj_h, KScreenWidth, KScreenHeight - categoryBgV.mj_h - TabbarHeight);
  103. [self.view addSubview:pagerView];
  104. self.youpaippagerView = pagerView;
  105. self.youpaipcategoryView.listContainer = self.youpaippagerView;
  106. pagerView.backgroundColor = [UIColor clearColor];
  107. pagerView.scrollView.backgroundColor = [UIColor clearColor];
  108. [self.view addSubview:categoryBgV];
  109. self.youpaipcategoryBgV = categoryBgV;
  110. [categoryBgV mas_makeConstraints:^(MASConstraintMaker *make) {
  111. make.left.top.right.offset(0.0f);
  112. make.height.offset(LZCategoryViewHeight + StatusBarHeight);
  113. }];
  114. // [sendDynamicBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  115. // make.right.offset(-16.0f);
  116. // make.top.offset(StatusBarHeight + (LZCategoryViewHeight - 44) / 2.0f);
  117. // make.size.mas_offset(CGSizeMake(24.0f, 44.0f));
  118. // }];
  119. [categoryView mas_makeConstraints:^(MASConstraintMaker *make) {
  120. make.centerX.equalTo(categoryBgV);
  121. make.top.offset(StatusBarHeight);
  122. make.height.offset(LZCategoryViewHeight);
  123. make.width.mas_equalTo(adapt(112));
  124. // make.right.equalTo(sendDynamicBtn.mas_left).offset(-16.0f);
  125. }];
  126. [pagerView mas_makeConstraints:^(MASConstraintMaker *make) {
  127. make.right.left.offset(0.0f);
  128. make.top.equalTo(categoryBgV.mas_bottom).offset(0.0f);
  129. make.bottom.offset(-TabbarHeight);
  130. }];
  131. UIButton *sendDynamicBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  132. [sendDynamicBtn setBackgroundImage:[UIImage imageNamed:@"vqu_images_dynamic_send"] forState:UIControlStateNormal];
  133. [sendDynamicBtn addTarget:self action:@selector(youpaifsendDynamicClick:) forControlEvents:UIControlEventTouchUpInside];
  134. [self.view addSubview:sendDynamicBtn];
  135. [sendDynamicBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  136. make.bottom.offset(-TabbarHeight-24.0f);
  137. make.right.offset(-12.0f);
  138. make.size.mas_offset(CGSizeMake(68.0f, 68.0f));
  139. }];
  140. }
  141. #pragma mark - JXCategoryListContainerViewDelegate
  142. - (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView{
  143. return self.titles.count;
  144. }
  145. - (id<JXCategoryListContentViewDelegate>)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index{
  146. YOUPAILCBaseDynamicVC *dynamicVC = [[YOUPAILCBaseDynamicVC alloc] init];
  147. dynamicVC.view.backgroundColor = [UIColor whiteColor];
  148. dynamicVC.tableView.backgroundColor = [UIColor whiteColor];
  149. dynamicVC.youpaiptype = [self.types[index] integerValue];
  150. return dynamicVC;
  151. }
  152. //- (id<JXCategoryListContentViewDelegate>)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index{
  153. // if (index == 0) {
  154. // return [self dynamicVC];
  155. // }else{
  156. // return [self shortVideoVC];
  157. // }
  158. //}
  159. //- (void)listContainerViewDidScroll:(UIScrollView *)scrollView{
  160. // CGFloat x = scrollView.contentOffset.x;
  161. // CGFloat scale = x / KScreenWidth;
  162. // self.categoryBgV.backgroundColor = [LCBkgColor colorWithAlphaComponent:1.0f - scale];
  163. //}
  164. - (void)youpaiDynamicMsgButnClick:(UIButton*)sender {
  165. }
  166. - (void)youpaifsendDynamicClick:(UIButton*)sender{
  167. if (![LCTools isRealNameAuthentication]) {
  168. return;
  169. }
  170. YOUPAILZCheckDynamicTypeWindow *window = [[YOUPAILZCheckDynamicTypeWindow alloc] init];
  171. window.isTouchDismiss = YES;
  172. @weakify(self);
  173. [window setSelectedSendDynamicTypeBlock:^(LZSendDynamicType type) {
  174. @strongify(self);
  175. if (type == LZSendDynamicTypeWithImage) {
  176. if ([LCSaveModel getSendDynamicModel]) {
  177. YOUPAILCSendImageDynamicVC* sendDynamic = [[YOUPAILCSendImageDynamicVC alloc]init];
  178. YOUPAILCSendDynamicModel* sendModel = [LCSaveModel getSendDynamicModel];
  179. sendDynamic.youpaipsendModel = sendModel;
  180. [self pushEffectPresentToVC:sendDynamic];
  181. }else{
  182. [self youpaifopenAlbum];
  183. }
  184. }else{
  185. // [ZCHUDHelper showTitle:@"敬请期待~"];
  186. //暂时注释
  187. [self youpaifopenVideos];
  188. }
  189. }];
  190. [self TFPresentVC:window completion:nil];
  191. // if (self.youpaipcategoryView.selectedIndex == 0) {//动态
  192. //
  193. //
  194. // [QQPopMenuView showWithItems:@[@{@"title":@"发布视频",@"imageName":@""},
  195. // @{@"title":@"发布图片",@"imageName":@""},
  196. // ]
  197. // width:74
  198. // triangleLocation:CGPointMake([UIScreen mainScreen].bounds.size.width-30, NavBarHeight+5)
  199. // action:^(NSInteger index) {
  200. //
  201. // NSLog(@"点击了第%ld行",index);
  202. // if (index == 0) {
  203. // [self youpaifopenVideos];
  204. // }else{
  205. // if ([LCSaveModel getSendDynamicModel]) {
  206. // YOUPAILCSendImageDynamicVC* sendDynamic = [[YOUPAILCSendImageDynamicVC alloc]init];
  207. // YOUPAILCSendDynamicModel* sendModel = [LCSaveModel getSendDynamicModel];
  208. // sendDynamic.youpaipsendModel = sendModel;
  209. // [self pushEffectPresentToVC:sendDynamic];
  210. // }else{
  211. // [self youpaifopenAlbum];
  212. // }
  213. // }
  214. //
  215. // }];
  216. //
  217. //
  218. //
  219. //
  220. //
  221. // }else{//短视频
  222. //
  223. //
  224. //// [QQPopMenuView showWithItems:@[@{@"title":@"链接上传",@"imageName":@""},
  225. //// @{@"title":@"本地上传",@"imageName":@""},
  226. //// ]
  227. //// width:74
  228. //// triangleLocation:CGPointMake([UIScreen mainScreen].bounds.size.width-30, NavBarHeight+5)
  229. //// action:^(NSInteger index) {
  230. ////
  231. //// NSLog(@"点击了第%ld行",index);
  232. //// if (index == 0) {
  233. //// YOUPAIZYSendVideoByLinkVC *vc = [[YOUPAIZYSendVideoByLinkVC alloc] init];
  234. //// [self pushEffectPresentToVC:vc];
  235. //// }else{
  236. // [self youpaifshortVideoyoupaifopenAlbum];
  237. //// }
  238. ////
  239. //// }];
  240. //
  241. //
  242. //// YOUPAIZYSendVideoVC *vc = [[YOUPAIZYSendVideoVC alloc] init];
  243. //// [self.navigationController pushViewController:vc animated:YES];
  244. //
  245. // }
  246. }
  247. //上传本地视频
  248. - (void)youpaifshortVideoyoupaifopenAlbum{
  249. TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:9 columnNumber:4 delegate:nil];
  250. [LCTZImageConfigHelper setDefaultTZImageConfig:imagePickerVc];
  251. imagePickerVc.allowTakePicture = YES; // 在内部显示拍照按钮
  252. imagePickerVc.allowPickingVideo = YES;//是否允许选择视频
  253. imagePickerVc.allowPickingImage = NO;//是否允许选择照片
  254. imagePickerVc.allowPickingOriginalPhoto = NO;//是否选择原图
  255. imagePickerVc.showSelectedIndex = YES; //显示图片序号
  256. // 4. 照片排列按修改时间升序
  257. imagePickerVc.sortAscendingByModificationDate = YES;//按时间倒序排列图片
  258. // 你可以通过block或者代理,来得到用户选择的照片.
  259. [imagePickerVc setDidFinishPickingVideoHandle:^(UIImage *coverImage, PHAsset *asset) {
  260. PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
  261. options.version = PHVideoRequestOptionsVersionOriginal;
  262. options.deliveryMode = PHVideoRequestOptionsDeliveryModeAutomatic;
  263. options.networkAccessAllowed = YES;
  264. [[PHImageManager defaultManager] requestAVAssetForVideo:asset options:nil resultHandler:^(AVAsset * _Nullable asset, AVAudioMix * _Nullable audioMix, NSDictionary * _Nullable info) {
  265. AVURLAsset *urlAsser = ( AVURLAsset *)asset;
  266. NSString *videoPath =[urlAsser.URL absoluteString];
  267. NSLog(@"%@",videoPath);
  268. NSLog(@"%@",info);
  269. CMTime time = [asset duration];
  270. int seconds = ceil(time.value/time.timescale);
  271. NSLog(@"视频时长seconds = %d",seconds);
  272. dispatch_sync(dispatch_get_main_queue(), ^{
  273. if (seconds > 60) {
  274. //视频时长大于60s将自动裁剪前60秒进行上传
  275. [self youpaifisCutVideo:videoPath andImage:coverImage];//是否裁剪视频进行上传
  276. }else{
  277. //裁剪
  278. // YOUPAIVideoEditVC *videoEditVC = [[YOUPAIVideoEditVC alloc] init];
  279. // videoEditVC.videoUrl = [NSURL URLWithString:videoPath];
  280. // [self.navigationController pushViewController:videoEditVC animated:YES];
  281. YOUPAIZYSendVideoByLocalVC *vc = [[YOUPAIZYSendVideoByLocalVC alloc] init];
  282. vc.youpaipcoverImage = coverImage;
  283. vc.youpaipvideoFileName = videoPath;
  284. [self pushEffectPresentToVC:vc];
  285. }
  286. });
  287. }];
  288. }];
  289. [self presentViewController:imagePickerVc animated:YES completion:nil];
  290. }
  291. - (YOUPAILZDynamicVC *)dynamicVC{
  292. return [[YOUPAILZDynamicVC alloc]init];
  293. }
  294. - (YOUPAIZYShortVideoVC *)shortVideoVC{
  295. return [[YOUPAIZYShortVideoVC alloc]init];
  296. }
  297. //上传视频
  298. -(void)youpaifopenVideos{
  299. [[LCTools getCurrentVC] showVideoPickerWithStyleBlock:^(TZImagePickerController * _Nonnull imagePicker) {
  300. [LCTZImageConfigHelper setDefaultTZImageConfig:imagePicker];
  301. imagePicker.allowTakePicture = YES; // 在内部显示拍照按钮
  302. imagePicker.allowPickingVideo = YES;//是否允许选择视频
  303. imagePicker.allowPickingImage = NO;//是否允许选择照片
  304. imagePicker.allowPickingOriginalPhoto = NO;//是否选择原图
  305. imagePicker.showSelectedIndex = YES; //显示图片序号
  306. // 4. 照片排列按修改时间升序
  307. imagePicker.sortAscendingByModificationDate = YES;//按时间倒序排列图片
  308. } finishBlock:^(UIImage * _Nonnull coverImage, NSString * _Nonnull outputPath, NSString * _Nonnull errorMsg) {
  309. NSLog(@"asdds");
  310. YOUPAIZYSendVideoByLocalVC *vc = [[YOUPAIZYSendVideoByLocalVC alloc] init];
  311. vc.youpaipcoverImage = coverImage;
  312. vc.youpaipisDynamicVC = self.youpaipcategoryView.selectedIndex == 0;
  313. vc.youpaipvideoFileName = outputPath;
  314. [self pushEffectPresentToVC:vc];
  315. }];
  316. // TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:9 columnNumber:4 delegate:self];
  317. //
  318. // // 你可以通过block或者代理,来得到用户选择的照片.
  319. // [imagePickerVc setDidFinishPickingAndEditingVideoHandle:^(UIImage *coverImage, NSString *outputPath, NSString *errorMsg) {
  320. // NSLog(@"asdasd");
  321. // }];
  322. // [imagePickerVc setDidFinishPickingVideoHandle:^(UIImage *coverImage, PHAsset *asset) {
  323. //
  324. // if (asset == nil) {
  325. // [ZCHUDHelper showTitle:@"无效视频"];
  326. // return;
  327. // }
  328. //// dispatch_sync(dispatch_get_main_queue(), ^{
  329. //// if (seconds > 60) {
  330. //// //视频时长大于60s将自动裁剪前60秒进行上传
  331. //// [self youpaifisCutVideo:videoPath andImage:coverImage];//是否裁剪视频进行上传
  332. //// }else{
  333. // //裁剪
  334. // // YOUPAIVideoEditVC *videoEditVC = [[YOUPAIVideoEditVC alloc] init];
  335. // // videoEditVC.videoUrl = [NSURL URLWithString:videoPath];
  336. // // [self.navigationController pushViewController:videoEditVC animated:YES];
  337. // YOUPAIZYSendVideoByLocalVC *vc = [[YOUPAIZYSendVideoByLocalVC alloc] init];
  338. // vc.youpaipcoverImage = coverImage;
  339. // vc.youpaipisDynamicVC = self.youpaipcategoryView.selectedIndex == 0;
  340. // vc.youpaipvideoFileName = @"";
  341. // [self pushEffectPresentToVC:vc];
  342. //// }
  343. //// });
  344. //
  345. // }];
  346. // [self presentViewController:imagePicker animated:YES completion:nil];
  347. }
  348. -(void)youpaifisCutVideo:(NSString *)videoPath andImage:(UIImage *)coverImage
  349. {
  350. NSLog(@"%@",videoPath);
  351. UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil message:@"视频时长大于60秒将自动裁剪前60秒进行上传" preferredStyle:UIAlertControllerStyleAlert];
  352. UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消上传" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action){
  353. }];
  354. UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"确定上传" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action){
  355. [ZCHUDHelper showWithStatus:@"正在裁剪..."];
  356. NSURL *url = [NSURL URLWithString:videoPath];
  357. NSLog(@"url == %@",url);
  358. [YOUPAISHMediaManager youpaifcropWithVideoUrlStr:url start:1.0 end:60.0 completion:^(NSURL *outputURL, Float64 videoDuration, BOOL isSuccess) {
  359. if (isSuccess) {
  360. NSLog(@"-转码完成------\n路径:%@",outputURL);
  361. dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
  362. dispatch_async(dispatch_get_main_queue(), ^{
  363. [ZCHUDHelper showTitle:@"裁剪完成"];
  364. YOUPAIZYSendVideoByLocalVC *vc = [[YOUPAIZYSendVideoByLocalVC alloc] init];
  365. vc.youpaipcoverImage = coverImage;
  366. vc.youpaipvideoFileName = [outputURL absoluteString];
  367. vc.youpaipisDynamicVC = self.youpaipcategoryView.selectedIndex == 0;
  368. [self pushEffectPresentToVC:vc];
  369. });
  370. });
  371. }else{
  372. [ZCHUDHelper showTitle:@"裁剪失败"];
  373. }
  374. }];
  375. }];
  376. [alertController addAction:cancelAction];
  377. [alertController addAction:okAction];
  378. [self presentViewController:alertController animated:YES completion:nil];
  379. }
  380. - (void)youpaifopenAlbum{
  381. TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:9 columnNumber:4 delegate:nil];
  382. [LCTZImageConfigHelper setDefaultTZImageConfig:imagePickerVc];
  383. imagePickerVc.allowTakePicture = YES; // 在内部显示拍照按钮
  384. imagePickerVc.allowPickingVideo = NO;//是否允许选择视频
  385. imagePickerVc.allowPickingImage = YES;//是否允许选择照片
  386. imagePickerVc.allowPickingOriginalPhoto = YES;//是否选择原图
  387. imagePickerVc.showSelectedIndex = YES; //显示图片序号
  388. // 4. 照片排列按修改时间升序
  389. imagePickerVc.sortAscendingByModificationDate = YES;//按时间倒序排列图片
  390. // 你可以通过block或者代理,来得到用户选择的照片.
  391. [imagePickerVc setDidFinishPickingPhotosHandle:^(NSArray<UIImage *> *photos, NSArray *assets, BOOL isSelectOriginalPhoto) {
  392. YOUPAILCSendImageDynamicVC* sendDynamic = [[YOUPAILCSendImageDynamicVC alloc]init];
  393. YOUPAILCSendDynamicModel* sendModel = [[YOUPAILCSendDynamicModel alloc]init];
  394. sendModel.youpaipimages = photos.mutableCopy;
  395. sendDynamic.youpaipsendModel = sendModel;
  396. [self pushEffectPresentToVC:sendDynamic];
  397. }];
  398. [imagePickerVc setDidFinishPickingGifImageHandle:^(UIImage *animatedImage, id sourceAssets) {
  399. YOUPAILCSendImageDynamicVC* sendDynamic = [[YOUPAILCSendImageDynamicVC alloc]init];
  400. YOUPAILCSendDynamicModel* sendModel = [[YOUPAILCSendDynamicModel alloc]init];
  401. sendModel.youpaipimages = [NSMutableArray arrayWithObject:animatedImage];
  402. sendDynamic.youpaipsendModel = sendModel;
  403. [self pushEffectPresentToVC:sendDynamic];
  404. }];
  405. [self presentViewController:imagePickerVc animated:YES completion:nil];
  406. }
  407. - (NSArray <NSString *> *)titles{
  408. return @[@"推荐",@"关注"];
  409. }
  410. - (NSArray <NSNumber *> *)types{
  411. return @[@(1),@(2),@(0)];
  412. }
  413. @end