YOUPAILZDiscoverVC.m 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477
  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.bottom.equalTo(indicatorImageView).offset(-5);
  96. make.width.mas_equalTo(adapt(40));
  97. make.height.mas_equalTo(adapt(8));
  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. YOUPAILCBaseInfo *userinfo = [LCSaveModel getUserModel].youpaipuserinfo;
  132. if (userinfo.youpaipgender == 1){
  133. UIButton *sendDynamicBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  134. [sendDynamicBtn setBackgroundImage:[UIImage imageNamed:@"vqu_images_dynamic_send"] forState:UIControlStateNormal];
  135. [sendDynamicBtn addTarget:self action:@selector(youpaifsendDynamicClick:) forControlEvents:UIControlEventTouchUpInside];
  136. [self.view addSubview:sendDynamicBtn];
  137. [sendDynamicBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  138. make.bottom.offset(-TabbarHeight-24.0f);
  139. make.right.offset(-12.0f);
  140. make.size.mas_offset(CGSizeMake(68.0f, 68.0f));
  141. }];
  142. }
  143. }
  144. #pragma mark - JXCategoryListContainerViewDelegate
  145. - (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView{
  146. return self.titles.count;
  147. }
  148. - (id<JXCategoryListContentViewDelegate>)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index{
  149. YOUPAILCBaseDynamicVC *dynamicVC = [[YOUPAILCBaseDynamicVC alloc] init];
  150. dynamicVC.view.backgroundColor = [UIColor whiteColor];
  151. dynamicVC.tableView.backgroundColor = [UIColor whiteColor];
  152. dynamicVC.youpaiptype = [self.types[index] integerValue];
  153. return dynamicVC;
  154. }
  155. //- (id<JXCategoryListContentViewDelegate>)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index{
  156. // if (index == 0) {
  157. // return [self dynamicVC];
  158. // }else{
  159. // return [self shortVideoVC];
  160. // }
  161. //}
  162. //- (void)listContainerViewDidScroll:(UIScrollView *)scrollView{
  163. // CGFloat x = scrollView.contentOffset.x;
  164. // CGFloat scale = x / KScreenWidth;
  165. // self.categoryBgV.backgroundColor = [LCBkgColor colorWithAlphaComponent:1.0f - scale];
  166. //}
  167. - (void)youpaiDynamicMsgButnClick:(UIButton*)sender {
  168. }
  169. - (void)youpaifsendDynamicClick:(UIButton*)sender{
  170. if (![LCTools isRealNameAuthentication]) {
  171. return;
  172. }
  173. YOUPAILZCheckDynamicTypeWindow *window = [[YOUPAILZCheckDynamicTypeWindow alloc] init];
  174. window.isTouchDismiss = YES;
  175. @weakify(self);
  176. [window setSelectedSendDynamicTypeBlock:^(LZSendDynamicType type) {
  177. @strongify(self);
  178. if (type == LZSendDynamicTypeWithImage) {
  179. if ([LCSaveModel getSendDynamicModel]) {
  180. YOUPAILCSendImageDynamicVC* sendDynamic = [[YOUPAILCSendImageDynamicVC alloc]init];
  181. YOUPAILCSendDynamicModel* sendModel = [LCSaveModel getSendDynamicModel];
  182. sendDynamic.youpaipsendModel = sendModel;
  183. [self pushEffectPresentToVC:sendDynamic];
  184. }else{
  185. [self youpaifopenAlbum];
  186. }
  187. }else{
  188. // [ZCHUDHelper showTitle:@"敬请期待~"];
  189. //暂时注释
  190. [self youpaifopenVideos];
  191. }
  192. }];
  193. [self TFPresentVC:window completion:nil];
  194. // if (self.youpaipcategoryView.selectedIndex == 0) {//动态
  195. //
  196. //
  197. // [QQPopMenuView showWithItems:@[@{@"title":@"发布视频",@"imageName":@""},
  198. // @{@"title":@"发布图片",@"imageName":@""},
  199. // ]
  200. // width:74
  201. // triangleLocation:CGPointMake([UIScreen mainScreen].bounds.size.width-30, NavBarHeight+5)
  202. // action:^(NSInteger index) {
  203. //
  204. // NSLog(@"点击了第%ld行",index);
  205. // if (index == 0) {
  206. // [self youpaifopenVideos];
  207. // }else{
  208. // if ([LCSaveModel getSendDynamicModel]) {
  209. // YOUPAILCSendImageDynamicVC* sendDynamic = [[YOUPAILCSendImageDynamicVC alloc]init];
  210. // YOUPAILCSendDynamicModel* sendModel = [LCSaveModel getSendDynamicModel];
  211. // sendDynamic.youpaipsendModel = sendModel;
  212. // [self pushEffectPresentToVC:sendDynamic];
  213. // }else{
  214. // [self youpaifopenAlbum];
  215. // }
  216. // }
  217. //
  218. // }];
  219. //
  220. //
  221. //
  222. //
  223. //
  224. // }else{//短视频
  225. //
  226. //
  227. //// [QQPopMenuView showWithItems:@[@{@"title":@"链接上传",@"imageName":@""},
  228. //// @{@"title":@"本地上传",@"imageName":@""},
  229. //// ]
  230. //// width:74
  231. //// triangleLocation:CGPointMake([UIScreen mainScreen].bounds.size.width-30, NavBarHeight+5)
  232. //// action:^(NSInteger index) {
  233. ////
  234. //// NSLog(@"点击了第%ld行",index);
  235. //// if (index == 0) {
  236. //// YOUPAIZYSendVideoByLinkVC *vc = [[YOUPAIZYSendVideoByLinkVC alloc] init];
  237. //// [self pushEffectPresentToVC:vc];
  238. //// }else{
  239. // [self youpaifshortVideoyoupaifopenAlbum];
  240. //// }
  241. ////
  242. //// }];
  243. //
  244. //
  245. //// YOUPAIZYSendVideoVC *vc = [[YOUPAIZYSendVideoVC alloc] init];
  246. //// [self.navigationController pushViewController:vc animated:YES];
  247. //
  248. // }
  249. }
  250. //上传本地视频
  251. - (void)youpaifshortVideoyoupaifopenAlbum{
  252. TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:9 columnNumber:4 delegate:nil];
  253. [LCTZImageConfigHelper setDefaultTZImageConfig:imagePickerVc];
  254. imagePickerVc.allowTakePicture = YES; // 在内部显示拍照按钮
  255. imagePickerVc.allowPickingVideo = YES;//是否允许选择视频
  256. imagePickerVc.allowPickingImage = NO;//是否允许选择照片
  257. imagePickerVc.allowPickingOriginalPhoto = NO;//是否选择原图
  258. imagePickerVc.showSelectedIndex = YES; //显示图片序号
  259. // 4. 照片排列按修改时间升序
  260. imagePickerVc.sortAscendingByModificationDate = YES;//按时间倒序排列图片
  261. // 你可以通过block或者代理,来得到用户选择的照片.
  262. [imagePickerVc setDidFinishPickingVideoHandle:^(UIImage *coverImage, PHAsset *asset) {
  263. PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
  264. options.version = PHVideoRequestOptionsVersionOriginal;
  265. options.deliveryMode = PHVideoRequestOptionsDeliveryModeAutomatic;
  266. options.networkAccessAllowed = YES;
  267. [[PHImageManager defaultManager] requestAVAssetForVideo:asset options:nil resultHandler:^(AVAsset * _Nullable asset, AVAudioMix * _Nullable audioMix, NSDictionary * _Nullable info) {
  268. AVURLAsset *urlAsser = ( AVURLAsset *)asset;
  269. NSString *videoPath =[urlAsser.URL absoluteString];
  270. NSLog(@"%@",videoPath);
  271. NSLog(@"%@",info);
  272. CMTime time = [asset duration];
  273. int seconds = ceil(time.value/time.timescale);
  274. NSLog(@"视频时长seconds = %d",seconds);
  275. dispatch_sync(dispatch_get_main_queue(), ^{
  276. if (seconds > 60) {
  277. //视频时长大于60s将自动裁剪前60秒进行上传
  278. [self youpaifisCutVideo:videoPath andImage:coverImage];//是否裁剪视频进行上传
  279. }else{
  280. //裁剪
  281. // YOUPAIVideoEditVC *videoEditVC = [[YOUPAIVideoEditVC alloc] init];
  282. // videoEditVC.videoUrl = [NSURL URLWithString:videoPath];
  283. // [self.navigationController pushViewController:videoEditVC animated:YES];
  284. YOUPAIZYSendVideoByLocalVC *vc = [[YOUPAIZYSendVideoByLocalVC alloc] init];
  285. vc.youpaipcoverImage = coverImage;
  286. vc.youpaipvideoFileName = videoPath;
  287. [self pushEffectPresentToVC:vc];
  288. }
  289. });
  290. }];
  291. }];
  292. [self presentViewController:imagePickerVc animated:YES completion:nil];
  293. }
  294. - (YOUPAILZDynamicVC *)dynamicVC{
  295. return [[YOUPAILZDynamicVC alloc]init];
  296. }
  297. - (YOUPAIZYShortVideoVC *)shortVideoVC{
  298. return [[YOUPAIZYShortVideoVC alloc]init];
  299. }
  300. //上传视频
  301. -(void)youpaifopenVideos{
  302. [[LCTools getCurrentVC] showVideoPickerWithStyleBlock:^(TZImagePickerController * _Nonnull imagePicker) {
  303. [LCTZImageConfigHelper setDefaultTZImageConfig:imagePicker];
  304. imagePicker.allowTakePicture = YES; // 在内部显示拍照按钮
  305. imagePicker.allowPickingVideo = YES;//是否允许选择视频
  306. imagePicker.allowPickingImage = NO;//是否允许选择照片
  307. imagePicker.allowPickingOriginalPhoto = NO;//是否选择原图
  308. imagePicker.showSelectedIndex = YES; //显示图片序号
  309. // 4. 照片排列按修改时间升序
  310. imagePicker.sortAscendingByModificationDate = YES;//按时间倒序排列图片
  311. } finishBlock:^(UIImage * _Nonnull coverImage, NSString * _Nonnull outputPath, NSString * _Nonnull errorMsg) {
  312. NSLog(@"asdds");
  313. YOUPAIZYSendVideoByLocalVC *vc = [[YOUPAIZYSendVideoByLocalVC alloc] init];
  314. vc.youpaipcoverImage = coverImage;
  315. vc.youpaipisDynamicVC = self.youpaipcategoryView.selectedIndex == 0;
  316. vc.youpaipvideoFileName = outputPath;
  317. [self pushEffectPresentToVC:vc];
  318. }];
  319. // TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:9 columnNumber:4 delegate:self];
  320. //
  321. // // 你可以通过block或者代理,来得到用户选择的照片.
  322. // [imagePickerVc setDidFinishPickingAndEditingVideoHandle:^(UIImage *coverImage, NSString *outputPath, NSString *errorMsg) {
  323. // NSLog(@"asdasd");
  324. // }];
  325. // [imagePickerVc setDidFinishPickingVideoHandle:^(UIImage *coverImage, PHAsset *asset) {
  326. //
  327. // if (asset == nil) {
  328. // [ZCHUDHelper showTitle:@"无效视频"];
  329. // return;
  330. // }
  331. //// dispatch_sync(dispatch_get_main_queue(), ^{
  332. //// if (seconds > 60) {
  333. //// //视频时长大于60s将自动裁剪前60秒进行上传
  334. //// [self youpaifisCutVideo:videoPath andImage:coverImage];//是否裁剪视频进行上传
  335. //// }else{
  336. // //裁剪
  337. // // YOUPAIVideoEditVC *videoEditVC = [[YOUPAIVideoEditVC alloc] init];
  338. // // videoEditVC.videoUrl = [NSURL URLWithString:videoPath];
  339. // // [self.navigationController pushViewController:videoEditVC animated:YES];
  340. // YOUPAIZYSendVideoByLocalVC *vc = [[YOUPAIZYSendVideoByLocalVC alloc] init];
  341. // vc.youpaipcoverImage = coverImage;
  342. // vc.youpaipisDynamicVC = self.youpaipcategoryView.selectedIndex == 0;
  343. // vc.youpaipvideoFileName = @"";
  344. // [self pushEffectPresentToVC:vc];
  345. //// }
  346. //// });
  347. //
  348. // }];
  349. // [self presentViewController:imagePicker animated:YES completion:nil];
  350. }
  351. -(void)youpaifisCutVideo:(NSString *)videoPath andImage:(UIImage *)coverImage
  352. {
  353. NSLog(@"%@",videoPath);
  354. UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil message:@"视频时长大于60秒将自动裁剪前60秒进行上传" preferredStyle:UIAlertControllerStyleAlert];
  355. UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消上传" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action){
  356. }];
  357. UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"确定上传" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action){
  358. [ZCHUDHelper showWithStatus:@"正在裁剪..."];
  359. NSURL *url = [NSURL URLWithString:videoPath];
  360. NSLog(@"url == %@",url);
  361. [YOUPAISHMediaManager youpaifcropWithVideoUrlStr:url start:1.0 end:60.0 completion:^(NSURL *outputURL, Float64 videoDuration, BOOL isSuccess) {
  362. if (isSuccess) {
  363. NSLog(@"-转码完成------\n路径:%@",outputURL);
  364. dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
  365. dispatch_async(dispatch_get_main_queue(), ^{
  366. [ZCHUDHelper showTitle:@"裁剪完成"];
  367. YOUPAIZYSendVideoByLocalVC *vc = [[YOUPAIZYSendVideoByLocalVC alloc] init];
  368. vc.youpaipcoverImage = coverImage;
  369. vc.youpaipvideoFileName = [outputURL absoluteString];
  370. vc.youpaipisDynamicVC = self.youpaipcategoryView.selectedIndex == 0;
  371. [self pushEffectPresentToVC:vc];
  372. });
  373. });
  374. }else{
  375. [ZCHUDHelper showTitle:@"裁剪失败"];
  376. }
  377. }];
  378. }];
  379. [alertController addAction:cancelAction];
  380. [alertController addAction:okAction];
  381. [self presentViewController:alertController animated:YES completion:nil];
  382. }
  383. - (void)youpaifopenAlbum{
  384. TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:9 columnNumber:4 delegate:nil];
  385. [LCTZImageConfigHelper setDefaultTZImageConfig:imagePickerVc];
  386. imagePickerVc.allowTakePicture = YES; // 在内部显示拍照按钮
  387. imagePickerVc.allowPickingVideo = NO;//是否允许选择视频
  388. imagePickerVc.allowPickingImage = YES;//是否允许选择照片
  389. imagePickerVc.allowPickingOriginalPhoto = YES;//是否选择原图
  390. imagePickerVc.showSelectedIndex = YES; //显示图片序号
  391. // 4. 照片排列按修改时间升序
  392. imagePickerVc.sortAscendingByModificationDate = YES;//按时间倒序排列图片
  393. // 你可以通过block或者代理,来得到用户选择的照片.
  394. [imagePickerVc setDidFinishPickingPhotosHandle:^(NSArray<UIImage *> *photos, NSArray *assets, BOOL isSelectOriginalPhoto) {
  395. YOUPAILCSendImageDynamicVC* sendDynamic = [[YOUPAILCSendImageDynamicVC alloc]init];
  396. YOUPAILCSendDynamicModel* sendModel = [[YOUPAILCSendDynamicModel alloc]init];
  397. sendModel.youpaipimages = photos.mutableCopy;
  398. sendDynamic.youpaipsendModel = sendModel;
  399. [self pushEffectPresentToVC:sendDynamic];
  400. }];
  401. [imagePickerVc setDidFinishPickingGifImageHandle:^(UIImage *animatedImage, id sourceAssets) {
  402. YOUPAILCSendImageDynamicVC* sendDynamic = [[YOUPAILCSendImageDynamicVC alloc]init];
  403. YOUPAILCSendDynamicModel* sendModel = [[YOUPAILCSendDynamicModel alloc]init];
  404. sendModel.youpaipimages = [NSMutableArray arrayWithObject:animatedImage];
  405. sendDynamic.youpaipsendModel = sendModel;
  406. [self pushEffectPresentToVC:sendDynamic];
  407. }];
  408. [self presentViewController:imagePickerVc animated:YES completion:nil];
  409. }
  410. - (NSArray <NSString *> *)titles{
  411. return @[@"推荐",@"关注"];
  412. }
  413. - (NSArray <NSNumber *> *)types{
  414. return @[@(1),@(2),@(0)];
  415. }
  416. @end