您的位置:首页 > 移动开发 > IOS开发

iOS应用上传个人头像

2017-02-13 15:50 274 查看
上传个人头像,可以说每个app都会有此功能,可以从相册里面选择图片,也可以从摄像头获取图片。废话不多说,直接上代码,仅供参考!以后可以考虑把我的工具类贴出来,等我把他完善些再说吧!

#pragma mark - 上传一张图片
- (void)upLoadingOneImageWithName:(NSString *)picName currentController:(ViewController *)viewController success:(successBlock)success failure:(failedBlock)failure;
{
_picName = picName;
_viewController = viewController;
_success = success;
_failure = failure;
[self re_election];
}

#pragma mark 上传头像
-(void)re_election
{
_photoActionSheet = [[UIActionSheet alloc]initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"本地相册上传" otherButtonTitles:@"拍照上传", nil];
[_photoActionSheet showInView:_viewController.view];
}

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if ([actionSheet isEqual:_photoActionSheet])
{
switch (buttonIndex) {
case 0:
[self localPhoto];
break;
case 1:
[self takePhoto];
break;

default:
break;
}
}
}

//本地图片
-(void)localPhoto
{
if (pickerController == nil)
{
pickerController = [UIImagePickerController new];

pickerController.delegate = self;
pickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

//设置选择后的图片可被编辑
pickerController.allowsEditing = YES;
pickerController.videoQuality = UIImagePickerControllerQualityTypeLow;
}

[_viewController presentViewController:pickerController animated:YES completion:nil];
}

//拍照
- (void)takePhoto
{
UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;

if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera])
{
pickerController=[UIImagePickerController new];

pickerController.delegate=self;
//设置拍照后的图片可被编辑

pickerController.allowsEditing=YES;

pickerController.sourceType=sourceType;

pickerController.showsCameraControls=YES;

[_viewController presentViewController:pickerController animated:YES completion:nil];

}else
{
NSLog(@"模拟其中无法打开照相机,请在真机中使用");
}
}

#pragma mark 当选择一张图片后进入这里
-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *type;
type = [info objectForKey:UIImagePickerControllerMediaType];

//当选择的类型是图片
if ([type isEqualToString:@"public.image"])
{
//先把图片转成NSData
UIImage * image;

image= [info objectForKey:@"UIImagePickerControllerEditedImage"];
[self setImage:image];
}
[picker dismissViewControllerAnimated:YES completion:nil];
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[picker dismissViewControllerAnimated:YES completion:nil];
}

-(void)setImage:(UIImage*)image
{
NSDictionary *dict = [MyData fileManager:@"user"];
[self deleteOneImage:dict[@"pic"] BlockWithSuccess:^(NSDictionary *dic) {

[self ossPostImage:@{@"image":image, @"name":_picName} BlockWithSuccess:^(NSDictionary *dic) {

_success(dic);
_success = nil;

_picName = nil;
_viewController = nil;
} failedBlock:^(NSError *error) {

_failure(error);
_failure = nil;

_picName = nil;
_viewController = nil;
}];
} failedBlock:^(NSError *error) {
_failure(error);
_failure = nil;

_picName = nil;
_viewController = nil;
}];
}

封装好了,以后就是一句代码的事,比较简单,参考一下吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  图片