// // InfoViewController.m // Ifish // // Created by imac on 15/10/8. // Copyright © 2015年 imac. All rights reserved. // #import "InfoViewController.h" #import "AFNetworking.h" #import "MyMD5.h" #import "UIImage+ImageEffects.h" #import "UIImageView+WebCache.h" //#import #import "InfoViewNiChengCell.h" #import "InfoQianMingCell.h" #import "InfoXingBieCell.h" #define NICHENGCELL_TAG 12340 #define XINGBIECELL_TAG 12341 #define QIANMINGCELL_TAG 12342 #import "infoSureBtnCell.h" #import "UIImage+NTES.h" #import "NTESFileLocationHelper.h" #import "SVProgressHUD.h" //#import "NIMWebImageManager.h" #import "Toast+UIView.h" #import "IfishUserDefaultHelper.h" @interface InfoViewController () //@property(nonatomic,strong)UIBarButtonItem*rightItem; @property (weak, nonatomic) IBOutlet UIButton *sureBUtton; @property(nonatomic,strong) UserModel*usermodel; @end @implementation InfoViewController - (void)viewDidLoad { // [self enablestateNo]; [super viewDidLoad]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; [self creatUserImg]; [self creatUserImgback]; self.infoTab.delegate = self; self.infoTab.dataSource = self; self.infoTab.backgroundColor = COLOR_MIAN; self.infoTab.separatorStyle= UITableViewCellSeparatorStyleNone; self.headerView.userInteractionEnabled = YES; [self.headerView addSubview:self.userImg]; self.infoTab.tableHeaderView = self.headerView; self.usermodel=[[DataCenter defaultDtacenter]valueForKey:@"UserLogIn"]; self.navigationItem.title=@"我的信息"; self.view.backgroundColor = COLOR_MIAN; self.navigationItem.titleView.backgroundColor=[UIColor redColor]; [self.navigationController.navigationBar setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:18],NSForegroundColorAttributeName:[UIColor whiteColor]}]; UITapGestureRecognizer*tapGestrueRecognizer=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapgestrue)]; self.userImg.userInteractionEnabled=YES; [self.userImg addGestureRecognizer:tapGestrueRecognizer]; UITapGestureRecognizer*tabGestrueRecognizer=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tabViewGestrue)]; [self.infoTab addGestureRecognizer:tabGestrueRecognizer]; // self.rightItem=[[UIBarButtonItem alloc]initWithTitle:@"编辑" style:UIBarButtonItemStyleDone target:self action:@selector(editclick)]; // self.navigationItem.rightBarButtonItem=self.rightItem; //[self showUI]; } -(void)tabViewGestrue{ [self hiddenKeybord]; } #pragma mark - tableView -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ if (section == 0) { return 3; }else{ return 1; } } -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 2; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ if (indexPath.section==0&&indexPath.row==0) { InfoViewNiChengCell *nichengCell=[tableView dequeueReusableCellWithIdentifier:@"InfoViewNiChengCell"]; if (nichengCell==nil) { nichengCell= [[[NSBundle mainBundle]loadNibNamed:@"InfoViewNiChengCell" owner:self options:nil]lastObject]; } nichengCell.niChengField.delegate=self; nichengCell.tag = NICHENGCELL_TAG; [nichengCell loadNiChengwith:self.usermodel]; nichengCell.selectionStyle = UITableViewCellSelectionStyleNone; return nichengCell; }else if (indexPath.section==0&&indexPath.row==1){ InfoXingBieCell *xingBieCell=[tableView dequeueReusableCellWithIdentifier:@"InfoXingBieCell"]; if (xingBieCell==nil) { xingBieCell= [[[NSBundle mainBundle]loadNibNamed:@"InfoXingBieCell" owner:self options:nil]lastObject]; } xingBieCell.tag = XINGBIECELL_TAG; [xingBieCell.InfoXingBieBtn addTarget:self action:@selector(xingbieClick) forControlEvents:UIControlEventTouchUpInside]; [xingBieCell loadXingBieWith:self.usermodel]; xingBieCell.selectionStyle = UITableViewCellSelectionStyleNone; return xingBieCell; }else if (indexPath.section==0&&indexPath.row==2){ InfoQianMingCell *qianMingCell=[tableView dequeueReusableCellWithIdentifier:@"InfoQianMingCell"]; if (qianMingCell==nil) { qianMingCell= [[[NSBundle mainBundle]loadNibNamed:@"InfoQianMingCell" owner:self options:nil]lastObject]; } qianMingCell.tag = QIANMINGCELL_TAG; qianMingCell.infoQianMingView.delegate=self; qianMingCell.infoQianMingView.returnKeyType = UIReturnKeyDefault; qianMingCell.infoQianMingView.showsVerticalScrollIndicator = NO; [qianMingCell loadQianmingWith:self.usermodel]; qianMingCell.selectionStyle = UITableViewCellSelectionStyleNone; return qianMingCell; }else if (indexPath.section==1&&indexPath.row==0){ infoSureBtnCell *btCell=[tableView dequeueReusableCellWithIdentifier:@"infoSureBtnCell"]; if (btCell==nil) { btCell= [[[NSBundle mainBundle]loadNibNamed:@"infoSureBtnCell" owner:self options:nil]lastObject]; } [btCell.infoSureBtn addTarget:self action:@selector(yesButton:) forControlEvents:UIControlEventTouchUpInside]; return btCell; } return nil; } -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ if (section==1) { return 20; }else{ return 0; } } -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ if (indexPath.section == 0 && indexPath.row == 2) { return 100; }else{ return 50; } } - (BOOL)textViewShouldBeginEditing:(UITextView *)textView{ InfoQianMingCell *qianMingCell =[self.infoTab viewWithTag:QIANMINGCELL_TAG]; if (textView ==qianMingCell.infoQianMingView){ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(qianmingkeyboradWillShow:) name:UIKeyboardWillShowNotification object:nil]; } return YES; } - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{ // if ([text isEqualToString:@"\n"]) { // // [textView resignFirstResponder]; //[要实现的方法] // // return NO; // // } // 键盘动画时间 // double duration = [[notify.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]; //视图下沉恢复原状 // [UIView animateWithDuration:duration animations:^{ // self.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); // }]; return YES; } -(void)showUI{ self.sureBUtton.backgroundColor=COLOR_LABEL_TITLE; self.sureBUtton.layer.masksToBounds = YES; self.sureBUtton.layer.cornerRadius = 5; } -(UIView*)creatUserImgback{ if (! self.headerView) { self.headerView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kScreenSize.width,140)]; self.headerView.layer.masksToBounds = YES; self.headerView.layer.cornerRadius = 50; } return self.headerView; } -(UIImageView*)creatUserImg{ if (! self.userImg) { self.userImg = [[UIImageView alloc] initWithFrame:CGRectMake(kScreenSize.width/2 - 50, 20, 100,100)]; self.userImg.layer.masksToBounds = YES; self.userImg.layer.cornerRadius = 50; } return self.userImg; } -(void)initImageView{ //self.backImg =[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kScreenSize.width,140)]; UserModel*umodel=[[DataCenter defaultDtacenter]valueForKey:@"UserLogIn"]; if ([umodel.userImg isKindOfClass:[NSNull class]]) { //int i = (arc4random()%7) + 1;// 设置随机头像 //int i = 1; // [self.backImg setImage:[UIImage imageNamed:[NSString stringWithFormat:@"userIcon%d.png",i]]]; [self.userImg setImage:[UIImage imageNamed:@"account"]]; }else if ([umodel.userImg isEqualToString:@""]){ // int i = (arc4random()%11) + 1;// 设置随机头像 // [self.backImg setImage:[UIImage imageNamed:[NSString stringWithFormat:@"acount%d.png",i]]]; //int i = (arc4random()%7) + 1;// 设置随机头像 int i = 1; // [self.backImg setImage:[UIImage imageNamed:[NSString stringWithFormat:@"userIcon%d.png",i]]]; //[self.backImg setImage:[UIImage imageNamed:@"account"]]; [self.userImg setImage:[UIImage imageNamed:[NSString stringWithFormat:@"userIcon%d.png",i]]]; }else{ // [self.backImg sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",kGetIconUrl,umodel.userImg]] placeholderImage:[UIImage imageNamed:@""]]; NSLog(@"%@",[NSString stringWithFormat:@"%@%@",kGetIconUrl,umodel.userImg]); [self.userImg sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",kGetIconUrl,umodel.userImg]] placeholderImage:[UIImage imageNamed:@""]]; } // [self createEfectbackImag]; } -(void)viewWillAppear:(BOOL)animated{ self.navigationController.navigationBarHidden=NO; dispatch_async(dispatch_get_main_queue(), ^{ [self initImageView]; }); _HUD=[MBProgressHUD showHUDAddedTo:self.view animated:YES]; _HUD.delegate=self; [_HUD hide:YES afterDelay:0.5]; } -(void)viewDidDisappear:(BOOL)animated{ self.navigationController.navigationBarHidden=NO; } -(void)createEfectbackImag{ // [self.backImg setImage:[self.userImg.image applyBlurWithRadius:28 tintColor:[UIColor colorWithWhite:2 alpha:0.5] saturationDeltaFactor:3.0 maskImage:nil]]; } -(void)editclick{ // EditViewController*deitVC=[[EditViewController alloc]init]; // [self.navigationController pushViewController:deitVC animated:YES]; // [self enableStateYes]; // self.navigationItem.rightBarButtonItem=nil; } -(void)enablestateNo{ // self.nianling.enabled=NO; // self.xingbiebutton.enabled=NO; //self.nicheng.enabled=NO; self.sureBUtton.enabled=NO; } -(void)enableStateYes{ self.sureBUtton.enabled=YES; // self.nicheng.enabled=YES; //self.xingbiebutton.enabled=YES; //self.nianling.enabled=YES; //self.nianling.textColor=[UIColor redColor]; // [self.xingbiebutton setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; //self.nicheng.textColor=[UIColor redColor]; } -(void)Sureclick{ UserModel*model=[[DataCenter defaultDtacenter]valueForKey:@"UserLogIn"]; InfoXingBieCell *xingBieCell=[self.infoTab viewWithTag:XINGBIECELL_TAG]; InfoQianMingCell *qianMingCell =[self.infoTab viewWithTag:QIANMINGCELL_TAG]; if ([xingBieCell.InfoXingBieBtn.titleLabel.text isEqualToString:@""]) { model.userSex=@""; }else if ([xingBieCell.InfoXingBieBtn.titleLabel.text isEqualToString:@"男"]){ model.userSex=@"1"; }else if ([xingBieCell.InfoXingBieBtn.titleLabel.text isEqualToString:@"女"]){ model.userSex=@"0"; }; InfoViewNiChengCell *nichengcell=[self.infoTab viewWithTag:NICHENGCELL_TAG]; if (nichengcell.niChengField.text.length ==0) { [self.view makeToast:@"用户名不能为空"]; return; } int nameLength = [self convertToInt:nichengcell.niChengField.text]; if (nameLength>=10) { [self.view makeToast:@"用户名小于十个字"]; return; } if (![self isIncludeSpecialCharact:nichengcell.niChengField.text]) { if (![model.nickName isEqualToString:nichengcell.niChengField.text]) { // [self gaiMingJiaJinBi]; } model.signature=qianMingCell.infoQianMingView.text; model.nickName=nichengcell.niChengField.text; [dataContorl resetUser:model]; [AFHttpTool updateUserWithUserId:model.userId nickName:model.nickName phoneNumber:@"" userSex:model.userSex userImg:@"" signature:model.signature timestamp:0 token:@"" success:^(id response) { if (response) { NSDictionary *reDic=[NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:nil]; if ([reDic[@"result"] isEqualToString:@"100"]) { [self.view makeToast:@"修改成功"]; }else if ([reDic[@"result"] isEqualToString:@"101"]){ [self.view makeToast:@"失败"]; }else if ([reDic[@"result"] isEqualToString:@"211"]){ [self.view makeToast:@"用户ID不存在"]; }else if ([reDic[@"result"] isEqualToString:@"213"]){ [self.view makeToast:@"包含敏感词[官方,爱鱼奇]"]; } } } failure:^(NSError *err) { [self.view makeToast:@"请求信息失败"]; }]; }else{ [self showTitle:@"提醒" messsage:@"昵称只能包含中文、中英文字母、数字和下划线"]; } } //判断是否包含特殊字符串 即非数字字母下划线 -(BOOL)isIncludeSpecialCharact:(NSString *)str { NSString *regex =@"(^[a-zA-Z0-9_\u4e00-\u9fa5]+$)"; NSPredicate * pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; BOOL isRight = ![pred evaluateWithObject:str]; return isRight; } //统计含中英文混编的NSString 字符串长度 - (int)convertToInt:(NSString *)strtemp { int strlength = 0; char* p = (char*)[strtemp cStringUsingEncoding:NSUnicodeStringEncoding]; for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) { if (*p) { p++; strlength++; } else { p++; } } return (strlength+1)/2; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } -(void)tapgestrue{ if (IFISHIOS8) { UIAlertController*alertCT=[UIAlertController alertControllerWithTitle:@"获取图片" message:nil preferredStyle:UIAlertControllerStyleActionSheet]; // 判断是否支持相机 模拟器无相机 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { UIAlertAction*action=[UIAlertAction actionWithTitle:@"拍照" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { // 相机 UIImagePickerController *imagePicker=[[UIImagePickerController alloc]init]; imagePicker.delegate=self; imagePicker.allowsEditing=YES; imagePicker.sourceType=UIImagePickerControllerSourceTypeCamera; [self presentViewController:imagePicker animated:YES completion:nil]; }]; [alertCT addAction:action]; } UIAlertAction*action1=[UIAlertAction actionWithTitle:@"从相册选取" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { //相册 UIImagePickerController*imgpic=[[UIImagePickerController alloc]init]; imgpic.delegate=self; imgpic.allowsEditing=YES; imgpic.sourceType=UIImagePickerControllerSourceTypePhotoLibrary; [self presentViewController:imgpic animated:YES completion:nil]; }]; [alertCT addAction:action1]; UIAlertAction *cancelAction=[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { }]; [alertCT addAction:cancelAction]; [self presentViewController:alertCT animated:YES completion:nil]; }else{ if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { self.photosheet=[[UIActionSheet alloc]initWithTitle:@"获取图片" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照",@"从相册选择", nil]; } [self.photosheet showInView:self.view]; } } #pragma mark--UIActionSheetDelegate IOS7 -(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{ if (actionSheet==self.photosheet) { if (buttonIndex==actionSheet.cancelButtonIndex) { return; } NSUInteger sourceType=0; if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { switch (buttonIndex) { case 0: { sourceType=UIImagePickerControllerSourceTypeCamera; NSLog(@"1"); } break; case 1: { sourceType=UIImagePickerControllerSourceTypePhotoLibrary; NSLog(@"2"); } break; default: break; } }else{ if (buttonIndex==1) { sourceType=UIImagePickerControllerSourceTypeSavedPhotosAlbum; } } // 转跳页面 UIImagePickerController*imgPic=[[UIImagePickerController alloc]init]; imgPic.delegate=self; imgPic.allowsEditing=YES; imgPic.sourceType=sourceType; [self presentViewController:imgPic animated:YES completion:nil]; }else if (actionSheet==self.sexsheet){ InfoXingBieCell *xingBieCell=[self.infoTab viewWithTag:XINGBIECELL_TAG]; if (buttonIndex==0) { [xingBieCell.InfoXingBieBtn setTitle:@"男" forState:UIControlStateNormal]; }else if (buttonIndex ==1){ [xingBieCell.InfoXingBieBtn setTitle:@"女" forState:UIControlStateNormal];; } } } #pragma mark-- 保存至沙河 -(void)saveImage:(UIImage*)currentImage withName:(NSString*)imageName{ //UIImage *smallImage=[self scaleFromImage:currentImage toSize:CGSizeMake(80.0f, 80.0f)]; UIImage *smallImage = [self thumbnailWithImageWithoutScale:currentImage size:CGSizeMake(300.0f, 300.0f)]; NSData*imageData=UIImageJPEGRepresentation(smallImage,1.0f);// 1 不缩放保存 // CGFloat length = [imageData length]/1024; // 获取沙河目录 NSString *fullPath=[[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]stringByAppendingPathComponent:imageName]; [imageData writeToFile:fullPath atomically:YES]; } // 改变图像的尺寸,方便上传服务器 - (UIImage *) scaleFromImage: (UIImage *) image toSize: (CGSize) size { UIGraphicsBeginImageContext(size); [image drawInRect:CGRectMake(0, 0, size.width, size.height)]; UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; } //保持原来的长宽比,生成一个缩略图 - (UIImage *)thumbnailWithImageWithoutScale:(UIImage *)image size:(CGSize)asize { UIImage *newimage; if (nil == image) { newimage = nil; } else{ CGSize oldsize = image.size; CGRect rect; if (asize.width/asize.height > oldsize.width/oldsize.height) { rect.size.width = asize.width*oldsize.height/oldsize.width; // rect.size.height = asize.height*oldsize.height/oldsize.width; rect.size.height = asize.width*oldsize.height/oldsize.width; rect.origin.x = (asize.width - rect.size.width)/2; rect.origin.y = 0; } else{ //rect.size.width = asize.width; rect.size.width = asize.height*oldsize.width/oldsize.height; rect.size.height = asize.height*oldsize.width/oldsize.height; rect.origin.x = 0; rect.origin.y = (asize.height - rect.size.height)/2; } UIGraphicsBeginImageContext(asize); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetFillColorWithColor(context, [[UIColor clearColor] CGColor]); UIRectFill(CGRectMake(0, 0, asize.width, asize.height));//clear background [image drawInRect:rect]; newimage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); } return newimage; } #pragma mark --选取完成后调用方法 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ [picker dismissViewControllerAnimated:YES completion:nil] ; UIImage*img=[info objectForKey:UIImagePickerControllerEditedImage]; [self saveImage:img withName:@"avatar.png"]; NSString*fullpath=[[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]stringByAppendingPathComponent:@"avatar.png"]; UIImage*saveImage=[[UIImage alloc]initWithContentsOfFile:fullpath]; self.fullpath=fullpath; //  设置展示图片 self.userImg.image=saveImage; // 上传 self.saveImage=saveImage; NSString*url=kSafeUploadFile; [self postImageWithUrl:url]; } #pragma mark-上传头像 -(void)postImageWithUrl:(NSString*)url{ AFHTTPRequestOperationManager*manager=[AFHTTPRequestOperationManager manager]; //manager.requestSerializer = [AFJSONRequestSerializer serializer]; [manager.requestSerializer setValue:[NSString stringWithFormat:@"5fc7bdada110e3a6eefd3065b8d8d995"] forHTTPHeaderField:@"appKey"]; NSString *nonceStr=[dataContorl get10LengthString]; [manager.requestSerializer setValue:nonceStr forHTTPHeaderField:@"nonce"]; NSString *curTimeString = [dataContorl getCurrentSyatemTime]; [manager.requestSerializer setValue:curTimeString forHTTPHeaderField:@"curTime"]; NSString *normalCheckSum = [NSString stringWithFormat:@"%@%@%@",IFISHAPPSECRET,nonceStr,curTimeString]; NSString *md5CheckSum = [MyMD5 md5:normalCheckSum]; [manager.requestSerializer setValue:md5CheckSum forHTTPHeaderField:@"checkSum"]; manager.responseSerializer=[AFHTTPResponseSerializer serializer]; // manager.responseSerializer.acceptableContentTypes=[NSSet setWithObject:@"text/html"]; NSMutableDictionary * para = [NSMutableDictionary dictionary]; UserModel *model=[[DataCenter defaultDtacenter]valueForKey:@"UserLogIn"]; [para setValue:model.userId forKey:@"userId"]; [para setValue:@"png" forKey:@"fileUpload"];// 图片类型 GIF,PNG,BMP,JPG,JPEG [manager POST:url parameters:para constructingBodyWithBlock:^(id formData) { //上传时使用当前的系统事件作为文件名 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateFormat = @"yyyyMMddHHmmss"; NSString *str = [formatter stringFromDate:[NSDate date]]; NSString *fileName = [NSString stringWithFormat:@"%@.jpg", str]; //服务器上传文件的字段和类型 NSData*data=UIImageJPEGRepresentation(self.saveImage,0.05f); [formData appendPartWithFileData:data name:@"fileUpload" fileName:fileName mimeType:@"image/jpeg"]; [formData appendPartWithFormData:data name:@"avatar.png"]; } success:^(AFHTTPRequestOperation *operation, id responseObject) { NSDictionary*resultDic=[NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil]; NSLog(@"result:%@",resultDic[@"result"]); NSDictionary*dataDic=resultDic[@"data"]; if ([resultDic[@"result"] isEqualToString:@"100"]) { NSLog(@"data:%@",resultDic[@"data"]); // 刷新UI dispatch_async(dispatch_get_main_queue(), ^{ model.userImg=dataDic[@"userImg"]; // [self createEfectbackImag]; NSLog(@"%@",[NSString stringWithFormat:@"%@%@",kGetIconUrl,model.userImg]); [self.userImg sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",kGetIconUrl,model.userImg]] placeholderImage:[UIImage imageNamed:@"camer.png"]]; NSString*fullpath=[[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]stringByAppendingPathComponent:@"avatar.png"]; UIImage*saveImage=[[UIImage alloc]initWithContentsOfFile:fullpath]; [self.backImg setImage:[saveImage applyBlurWithRadius:28 tintColor:[UIColor colorWithWhite:2 alpha:0.5] saturationDeltaFactor:3.0 maskImage:nil]]; }); //传入云信sdk 头像信息 NSString*fullpath=[[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]stringByAppendingPathComponent:@"avatar.png"]; UIImage*IMImage=[[UIImage alloc]initWithContentsOfFile:fullpath]; [self uploadImagetoIM:IMImage]; //改头像加金币 [self changeUserIcon]; }else if ([resultDic[@"result"] isEqualToString:@"101"]){ [self.view makeToast:@"上传失败"]; }else if ([resultDic[@"result"] isEqualToString:@"205"]){ [self.view makeToast:@"图片格式不正确"]; }else if ([resultDic[@"result"] isEqualToString:@"206"]){ [self.view makeToast:@"请求被舍弃,未执行"]; }else if ([resultDic[@"result"] isEqualToString:@"211"]){ [self.view makeToast:@"用户ID不存在"]; } } failure:^(AFHTTPRequestOperation *operation, NSError *error) { [self.view makeToast:@"网络异常"]; }]; } #pragma mark - 上传云信头像 -(void)uploadImagetoIM:(UIImage *)image { UIImage *imageForAvatarUpload = [image imageForAvatarUpload]; NSString *fileName = [NTESFileLocationHelper genFilenameWithExt:@"jpg"]; NSString *filePath = [[NTESFileLocationHelper getAppDocumentPath] stringByAppendingPathComponent:fileName]; NSData *data = UIImageJPEGRepresentation(imageForAvatarUpload, 1.0); BOOL success = data && [data writeToFile:filePath atomically:YES]; __weak typeof(self) wself = self; if (success) { [SVProgressHUD show]; [[NIMSDK sharedSDK].resourceManager upload:filePath progress:nil completion:^(NSString *urlString, NSError *error) { [SVProgressHUD dismiss]; if (!error && wself) { [[NIMSDK sharedSDK].userManager updateMyUserInfo:@{@(NIMUserInfoUpdateTagAvatar):urlString} completion:^(NSError *error) { if (!error) { [[SDWebImageManager sharedManager] saveImageToCache:imageForAvatarUpload forURL:[NSURL URLWithString:urlString]]; }else{ [wself.view makeToast:@"设置IM头像失败,请重试" ]; } }]; }else{ [wself.view makeToast:@"IM图片上传失败,请重试" ]; } }]; }else{ [self.view makeToast:@"IM图片保存失败,请重试" ]; } } #pragma mark--按取消按钮调用方法 -(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{ [self dismissViewControllerAnimated:YES completion:nil]; } - (void)yesButton:(UIButton *)sender { [self Sureclick]; } #pragma mark-处理收键盘 -(BOOL)textFieldShouldReturn:(UITextField *)textField{ [textField resignFirstResponder]; return YES; } -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ [self hiddenKeybord]; } -(void)hiddenKeybord{ InfoQianMingCell *qianMingCell =[self.infoTab viewWithTag:QIANMINGCELL_TAG]; InfoViewNiChengCell *nichengcell=[self.infoTab viewWithTag:NICHENGCELL_TAG]; [nichengcell.niChengField resignFirstResponder]; [qianMingCell.infoQianMingView resignFirstResponder]; } -(void)xingbieClick{ [self.view endEditing:YES]; [self creatActionSheet]; } -(void)creatActionSheet{ self.sexsheet=[[UIActionSheet alloc]initWithTitle:@"性别选择" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"男",@"女" ,nil]; [self.sexsheet showInView:self.view]; } // 处理键盘 -(BOOL)textFieldShouldBeginEditing:(UITextField *)textField { InfoViewNiChengCell *nichengcell=[self.infoTab viewWithTag:NICHENGCELL_TAG]; if (textField==nichengcell.niChengField) { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(nichengkeyboradWillShow:) name:UIKeyboardWillShowNotification object:nil]; } // else if (textField==_nianling){ // // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(qianmingkeyboradWillShow:) name:UIKeyboardWillShowNotification object:nil]; // } return YES; } - (void) nichengkeyboradWillShow:(NSNotification *)notification{ CGFloat kbHeight = [[notification.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size.height; //计算出键盘顶端到inputTextView panel底端的距离(加上自定义的缓冲距离INTERVAL_KEYBOARD) InfoViewNiChengCell *nichengcell=[self.infoTab viewWithTag:NICHENGCELL_TAG]; CGFloat offset = (nichengcell.niChengField.frame.origin.y+nichengcell.niChengField.frame.size.height+INTERVAL_KEYBOARD) - (self.view.frame.size.height - kbHeight); // 取得键盘的动画时间,这样可以在视图上移的时候更连贯 double duration = [[notification.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]; //将视图上移计算好的偏移 if(offset > 0) { [UIView animateWithDuration:duration animations:^{ self.view.frame = CGRectMake(0.0f, -offset, self.view.frame.size.width, self.view.frame.size.height); }]; } } -(void)qianmingkeyboradWillShow:(NSNotification *)notification{ InfoQianMingCell *qianMingCell =[self.infoTab viewWithTag:QIANMINGCELL_TAG]; CGFloat kbHeight = [[notification.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size.height; // CGRect keyboardFrame = [notification.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue]; //计算出键盘顶端到inputTextView panel底端的距离(加上自定义的缓冲距离INTERVAL_KEYBOARD) CGRect QianMingViewRect = [qianMingCell.infoQianMingView convertRect:qianMingCell.infoQianMingView.bounds toView:self.view]; CGFloat offset = (QianMingViewRect.origin.y+QianMingViewRect.size.height+INTERVAL_KEYBOARD) - (self.infoTab.frame.size.height - kbHeight); // 取得键盘的动画时间,这样可以在视图上移的时候更连贯 double duration = [[notification.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]; //CGRect QianMingViewRect = [qianMingCell.infoQianMingView convertRect:qianMingCell.infoQianMingView.bounds toView:self.view]; // CGFloat QianMingViewMargin =(QianMingViewRect.origin.y + QianMingViewRect.size.height + 10); //CGFloat transformY = keyboardFrame.origin.y - QianMingViewMargin; //将视图上移计算好的偏移 if(offset > 0) { [UIView animateWithDuration:duration animations:^{ self.view.frame = CGRectMake(0.0f, -offset , self.view.frame.size.width, self.view.frame.size.height); // if (keyboardFrame.origin.y < self.view.frame.size.height) { // self.view.transform = CGAffineTransformMakeTranslation(0,transformY); // }else{ // self.view.transform = CGAffineTransformMakeTranslation(0, 0); // } }]; } } //恢复原始视图位置 /////键盘消失事件 - (void)keyboardWillHide:(NSNotification *)notify { // 键盘动画时间 double duration = [[notify.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]; //视图下沉恢复原状 [UIView animateWithDuration:duration animations:^{ self.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); }]; } //-(void)refreshRongYunUserInfo:(RCUserInfo*)userInfo WithUserId:(NSString*)userId{ // // [[RCIM sharedRCIM] refreshUserInfoCache:userInfo withUserId:userId]; // //} #pragma mark -改名字加金币 -(void)gaiMingJiaJinBi{ //修改用户名字 加金币 [[IfishUserObsever sharedInstance] addGoldWith:RENAME addType:IFISHADDGOLDTYPE1]; } #pragma mark -改头像加金币 -(void)changeUserIcon{ //改头像加金币 加金币 [[IfishUserObsever sharedInstance] addGoldWith:OPLOADHEADIMG addType:IFISHADDGOLDTYPE1]; } @end