// // ShareViewController.m // GIGA // // Created by lianxiang on 2018/9/21. // Copyright © 2018年 com.giga.ios. All rights reserved. // #import "ShareViewController.h" #import "MaskTimeShareViewCell.h" #import "MaskShareTimeMidViewCell.h" #import "MaskShareBoootomViewCell.h" #import "MaskTimeShareActionSheet.h" #import "GIGaUserFileHelper.h" #import #import "GiGaFileNanager.h" //#import "WXApiObject.h" #import #import #import "UIImage+ShotImage.h" @interface ShareViewController () @property(nonatomic,strong) UITableView *tab; @property(nonatomic,strong) UIImageView *backimageview ; @property(nonatomic) int curentImageIndex ; @end @implementation ShareViewController - (void)viewDidLoad { [super viewDidLoad]; _curentImageIndex = 0; [self creatTabUI]; UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom]; backBtn.frame = CGRectMake(20,44, 40, 40); [backBtn setImage:[UIImage imageNamed:@"btn_moment_back"] forState:UIControlStateNormal]; [backBtn addTarget:self action:@selector(backBtnAction) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:backBtn]; [self creatBtns]; } -(void)creatTabUI{ self.automaticallyAdjustsScrollViewInsets = NO; self.tab = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain]; self.tab.separatorStyle = UITableViewCellSelectionStyleNone; self.tab.delegate = self; self.tab.dataSource = self; self.tab.backgroundColor = [UIColor clearColor]; [self.view addSubview:self.tab]; UIImageView *backimageview = [[UIImageView alloc] init]; backimageview.contentMode = UIViewContentModeScaleAspectFill; backimageview.frame = CGRectMake(0,0,self.view.frame.size.width, self.view.frame.size.height); backimageview.userInteractionEnabled = YES; backimageview.image = [GIGaUserFileHelper getUserShareImage:kUSERSHAREA_IMAGENAME]; // self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"sharebg_1"]]; self.backimageview = backimageview; self.tab.backgroundView = backimageview; } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return 3; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ if (indexPath.row == 0) { MaskTimeShareViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MaskTimeShareViewCell"]; if (!cell) { cell = [[[NSBundle mainBundle] loadNibNamed:@"MaskTimeShareViewCell" owner:self options:nil] lastObject]; } return cell; }else if (indexPath.row == 1){ MaskShareTimeMidViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MaskShareTimeMidViewCell"]; if (!cell) { cell = [[[NSBundle mainBundle] loadNibNamed:@"MaskShareTimeMidViewCell" owner:self options:nil] lastObject]; } return cell; } else if (indexPath.row == 2){ MaskShareBoootomViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MaskShareBoootomViewCell"]; if (!cell) { cell = [[[NSBundle mainBundle] loadNibNamed:@"MaskShareBoootomViewCell" owner:self options:nil] lastObject]; } return cell; } return nil; } - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ if (indexPath.row == 0) { return 295; }else if (indexPath.row ==1){ return 205; } return 158; } -(void)backBtnAction{ [self dismissViewControllerAnimated:YES completion:nil]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } -(void)creatBtns{ UIButton *changeBtn = [UIButton buttonWithType:UIButtonTypeCustom]; changeBtn.backgroundColor = GIGARGB(181, 14, 14, 0.6); NSAttributedString *titl = [GiGaHelper stringWithText:@"更换背景" textColor:[UIColor whiteColor] textFont:GIGA_TEXTFONTBOLD(18) leterSpace:0]; [changeBtn setAttributedTitle:titl forState:UIControlStateNormal]; [changeBtn addTarget:self action:@selector(changeAction) forControlEvents:UIControlEventTouchUpInside]; changeBtn.layer.masksToBounds = YES; changeBtn.layer.cornerRadius = 4; [self.view addSubview:changeBtn]; [changeBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.size.mas_equalTo(CGSizeMake(120, 40)); make.bottom.mas_equalTo(self.view.mas_bottom).mas_offset(-45); make.centerX.mas_equalTo(self.view.mas_centerX).offset(-72); }]; UIButton *shareBtn = [UIButton buttonWithType:UIButtonTypeCustom]; shareBtn.backgroundColor = GIGARGB(181, 14, 14, 0.6); NSAttributedString *titl2 = [GiGaHelper stringWithText:@"分享" textColor:[UIColor whiteColor] textFont:GIGA_TEXTFONTBOLD(18) leterSpace:0]; [shareBtn setAttributedTitle:titl2 forState:UIControlStateNormal]; [shareBtn addTarget:self action:@selector(shareBtnAction) forControlEvents:UIControlEventTouchUpInside]; shareBtn.layer.masksToBounds = YES; shareBtn.layer.cornerRadius = 4; [self.view addSubview:shareBtn]; [shareBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.size.mas_equalTo(CGSizeMake(120, 40)); make.bottom.mas_equalTo(self.view.mas_bottom).mas_offset(-45); make.centerX.mas_equalTo(self.view.mas_centerX).offset(72); }]; } //更换背景 -(void)changeAction{ MaskTimeShareActionSheet * sheet = [[MaskTimeShareActionSheet alloc] initWithFrame:CGRectMake(0, 0, KMainW, KMainH)]; [sheet show:^(NSUInteger index) { switch (index) { case 0: {//手机 [self photosAlbum]; } break; case 1: { //系统 self->_curentImageIndex ++; if (self->_curentImageIndex == 4) { self->_curentImageIndex = 0; } NSArray *images = @[@"sharebg_2",@"sharebg_3",@"sharebg_4",@"sharebg_5",@"sharebg_1"]; [self.backimageview setImage:[UIImage imageNamed: images[self->_curentImageIndex]]]; } break; case 2: { //自拍 [self takePhoto]; } break; default: break; } }]; [self.view addSubview:sheet]; } #pragma mark 相册 -(void)photosAlbum{ UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; imagePickerController.delegate = self; imagePickerController.allowsEditing = YES; //相册 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { //权限 imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [self presentViewController:imagePickerController animated:YES completion:nil]; }else{ NSString *errorStr = @"应用相权册限受限,请在设置中启用"; [self jxt_showAlertWithTitle:@"" message:errorStr appearanceProcess:^(JXTAlertController * _Nonnull alertMaker) { alertMaker.addActionCancelTitle(@"取消"); alertMaker.addActionDefaultTitle(@"去开启"); } actionsBlock:^(NSInteger buttonIndex, UIAlertAction * _Nonnull action, JXTAlertController * _Nonnull alertSelf) { if (buttonIndex == 1) { NSURL *url = [NSURL URLWithString:@"prefs:root=Photos"]; if ([[UIApplication sharedApplication] canOpenURL:url]) { [[UIApplication sharedApplication] openURL:url]; } } }]; } } //拍照 -(void)takePhoto{ UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; imagePickerController.delegate = self; imagePickerController.allowsEditing = YES; if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { //权限判断应用是否有使用相机的权限 NSString *mediaType = AVMediaTypeVideo;//读取媒体类型 AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:mediaType];//读取设备授权状态 if(authStatus == AVAuthorizationStatusRestricted || authStatus == AVAuthorizationStatusDenied){ NSString *errorStr = @"应用相机权限受限,请在设置中启用"; [self jxt_showAlertWithTitle:@"" message:errorStr appearanceProcess:^(JXTAlertController * _Nonnull alertMaker) { alertMaker.addActionCancelTitle(@"取消"); alertMaker.addActionDefaultTitle(@"去开启"); } actionsBlock:^(NSInteger buttonIndex, UIAlertAction * _Nonnull action, JXTAlertController * _Nonnull alertSelf) { if (buttonIndex == 1) { NSString *urlStr = @"App-Prefs:root=Photos"; if (@available(iOS 10.0, *)) { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr] options:@{} completionHandler:nil]; } else { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr]]; // Fallback on earlier versions } } }]; return; } // 设置数据源 imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; [self presentViewController:imagePickerController animated:YES completion:nil]; } } - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { GILog(@"info:%@",info); [picker dismissViewControllerAnimated:YES completion:nil] ; UIImage*img=[info objectForKey:UIImagePickerControllerEditedImage]; UIImage *small = [GIGaUserFileHelper zipScaleWithImage:img]; [GIGaUserFileHelper savaShareImange:kUSERSHAREA_IMAGENAME image:small]; [self.backimageview setImage:small]; } - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{ [picker dismissViewControllerAnimated:YES completion:nil]; } -(void)shareBtnAction{ if (![WXApi isWXAppInstalled]) { GIGA_ShowToast(@"未安装微信"); return; } UIImage *image = [UIImage saveLongImage:self.tab]; [self jxt_showActionSheetWithTitle:@"分享微信" message:@"" appearanceProcess:^(JXTAlertController * _Nonnull alertMaker) { alertMaker.addActionDefaultTitle(@"朋友"); alertMaker.addActionDefaultTitle(@"朋友圈"); alertMaker.addActionCancelTitle(@"取消"); } actionsBlock:^(NSInteger buttonIndex, UIAlertAction * _Nonnull action, JXTAlertController * _Nonnull alertSelf) { if (buttonIndex==0) { //好友 [self shareImagToWX:image scene:WXSceneSession]; }else if (buttonIndex==1){ // 朋友圈 [self shareImagToWX:image scene:WXSceneTimeline]; } }]; } -(void)shareImagToWX:(UIImage *)image scene:(int)scene{ WXMediaMessage *msg = [WXMediaMessage message]; UIImage * masllThumb = [GIGaUserFileHelper scaleFromImage:image toSize:CGSizeMake(100, 100)]; msg.title = @"面膜时间"; msg.description= @"极迦面膜"; [msg setThumbImage:masllThumb]; WXImageObject *imageObject = [WXImageObject object]; NSData *imageData = UIImagePNGRepresentation(image); imageObject.imageData = imageData; msg.mediaObject = imageObject; SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init]; req.message = msg; req.scene = scene; req.bText = NO; [WXApi sendReq:req]; } @end