ios 开发选取头像,图片库,相机,裁取图片

需要遵守的代理协议:UIActionSheetDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate

@property (nonatomic, strong) UIActionSheet *avatarActionSheet;

第一步:点击头像cell需要做的事情

[self.avatarActionSheet showInView:self.view];

第二步:

#pragma mark - 点击头像

- (UIActionSheet *)avatarActionSheet

{

if (!_avatarActionSheet) {

_avatarActionSheet = [[UIActionSheet alloc] initWithTitle:NSLocalizedString(@"选择你的头像", @"") delegate:self cancelButtonTitle:NSLocalizedString(@"取消", @"") destructiveButtonTitle:nil otherButtonTitles:NSLocalizedString(@"相机", @""), NSLocalizedString(@"在图片库选择", @""), nil];

}

return _avatarActionSheet;

}

#pragma mark - 弹框代理方法

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex

{

GYLog(@"%d" , buttonIndex);

if (buttonIndex == 2) return;// 取消

[self showImagePickerViewController:buttonIndex];

}

- (void)showImagePickerViewController:(NSInteger)pickerUserAvatarType

{

UIImagePickerControllerSourceType sourceType;

NSString *description = nil;

switch (pickerUserAvatarType) {

case 0:

sourceType = UIImagePickerControllerSourceTypeCamera;

description = NSLocalizedString(@"该设备不支持相机", @"");

break;

case 1:

sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

description = NSLocalizedString(@"该设备不支持图片库", @"");

break;

}

if (![UIImagePickerController isSourceTypeAvailable:sourceType]) {

[self initalizerAlertViewWithTitle:NSLocalizedString(@"警告", @"") description:description];

return;

}

UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];

imagePickerController.delegate = self;

imagePickerController.allowsEditing = YES;

imagePickerController.sourceType = sourceType;

imagePickerController.videoQuality = UIImagePickerControllerQualityTypeMedium;

[self presentViewController:imagePickerController animated:YES completion:NULL];

}

- (void)initalizerAlertViewWithTitle:(NSString *)title description:(NSString *)description

{

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:title message:description delegate:nil cancelButtonTitle:nil otherButtonTitles: NSLocalizedString(@"确定", @""), nil];

[alertView show];

}

- (void)showAvatarImage:(UITapGestureRecognizer *)tapGesture

{

GYLog(@"----------------------");

}

#pragma mark - 图片选择控制器的代理

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

{

UIImage *userAvatar = [info valueForKey:UIImagePickerControllerEditedImage];

[self.userIconView setImage:userAvatar];

[picker dismissViewControllerAnimated:YES completion:NULL];

// 1.创建请求管理对象

AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];

// 2.封装请求参数

NSMutableDictionary *params = [NSMutableDictionary dictionary];

params[@"verify"] = [GYUserDefaults objectForKey:@"verify"];

params[@"avatar"] = userAvatar;

// 3.发送请求

NSString *str = [NSString stringWithFormat:@"http://%@/?action=personal&option=update_avatar",GYAPP_URL];

[mgr POST:str parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { // 在发送请求之前调用这个block

NSData *data = UIImageJPEGRepresentation(userAvatar, 0.000001);

[formData appendPartWithFileData:data name:@"pic" fileName:@"" mimeType:@"image/jpeg"];

} success:^(AFHTTPRequestOperation *operation, id responseObject) {

[MBProgressHUD showSuccess:@"发送成功"];

#warning 是否需要进行数据存储

[GYUserDefaults setObject:responseObject[@"avatar"] forKey:@"avatar"];

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

[MBProgressHUD showError:@"发送失败"];

}];

}

ios 开发选取头像,图片库,相机,裁取图片

时间: 2024-12-21 19:41:36

ios 开发选取头像,图片库,相机,裁取图片的相关文章

IOS开发调用系统相机和打开闪光灯

IOS开发调用系统相机和打开闪光灯      今天给大家分享一下如何调用iphone的拍照功能和打开闪光灯,有些代码我也不太理解,很多是在网上借鉴其他人的.IOS有两种的拍照和视频的方 式:1.直接使用UIImagePickerController,这个类提供了一个简单便捷的拍照与选择图片库里图片的功能.2.另一种是通过 AVFoundation.framework框架完全自定义拍照的界面和选择图片库界面.我只做了第一种,就先给大家介绍第一种做法: 一.首先调用接口前,我们需要先判断当前设备是否

【iOS开发每日小笔记(十)】自制带圆框的头像 利用在CALayer设置“寄宿图”

这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.它们可能会给用户体验.代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下.90%的作用是帮助自己回顾.记忆.复习. 在上一篇文章中,我详细地回顾.复习了Core Graphics框架中利用Quartz 2D来绘制各种各样的图形,其实这些绘图就是绘制到了UIView的CALayer层上.这次,受到另一篇博文(http://

iOS开发自定义时间选取器

又是一年的暑假日期而至,小孩子放假,都会到在外打工的父母身边.孩子想父母,父母也思念着自己的孩子.我身边的亲戚朋友的孩子 也都来了.这个暑假又该热闹起来. 努力什么时候都不晚 我有一个表妹,今年参加完高考,对自己的成绩不是特别满意.上次我回老家,刚好她给我一起来上海.准备来上海锻炼一下. 车上我问她,准备去哪上学?她说不想上了,想打工.我没有怎么劝她,我想让她体验一下打工的生活,她就知道还是上学好. 一个高中生,出来找工作,困难可想而知.经姐姐介绍,进了一家餐厅工作.工资也不是很高.干了两天,我

iOS开发常用三方库、插件、知名博客等等

TimLiu-iOS   Swift版本点击这里 欢迎加入QQ交流群: 594119878 介绍 这是一个用于iOS开发的各种开源库.开源资料.开源技术等等的索引库. github排名 https://github.com/trending,github搜索:https://github.com/search 使用方法 根据目录关键字搜索,记得包含@,以保证搜索目录关键字的唯一性. 问题反馈 期待大家和我们一起共同维护,同时也期望大家随时能提出宝贵的意见(直接提交issues即可).请广大网友只

iOS开发 非常全的三方库、插件、大牛博客等等

UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看"使用方法". (国人写) XHRefreshControl- XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHo

iOS开发之资料收集

github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github.com/Tim9Liu9/TimLiu-iOS UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者

IOS开发之表视图爱上CoreData

在接触到CoreData时,感觉就是苹果封装的一个ORM.CoreData负责在Model的实体和sqllite建立关联,数据模型的实体类就相当于Java中的JavaBean, 而CoreData的功能和JavaEE中的Hibernate的功能类似,最基本是两者都有通过对实体的操作来实现对数据库的CURD操作.CoreData中的上下文(managedObjectContext)就相当于Hibernate中的session对象, CoreData中的save操作就和Hibernate中的comm

iOS:iOS开发非常全的三方库、插件、大牛博客等等

iOS开发非常全的三方库.插件.大牛博客等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github.com/Tim9Liu9/TimLiu-iOS UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableView或

iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

iOS开发系列--音频播放.录音.视频播放.拍照.视频录制 转载:http://www.cnblogs.com/kenshincui/p/4186022.html#avFoundationCamera --iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操作都提供了多套API.在今天的文章中将会对这些内容进行一一介绍: 音频 音