本來想做個注冊登錄的表單的,想想還是先做個簡單的頭像選擇,一般情況下不管是內部管理系統還是面向公眾的互聯網公司,注冊登錄是免不了的,用戶頭像上傳是免不了的,尤其是企業用戶,上傳了自己的圖片才感覺自己買的系統是比較值的。iOS開發中上傳圖片還是比較簡單的,通過UIImagePickerController和協議就很容易的實現的圖片的選擇和上傳。
頁面布局
首先看下視圖,一個按鈕,一個標簽和一個ImageView:

界面很簡單,頭文件中聲明一下UIImageView:
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
Demo實現
上傳按鈕的代碼,具體方法已經注釋:
//選擇頭像
- (IBAction)chooseImage:(id)sender {
//實例化照片選擇控制器
UIImagePickerController *pickControl=[[UIImagePickerController alloc]init];
//設置照片源
[pickControl setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
//設置協議
[pickControl setDelegate:self];
//設置編輯
[pickControl setAllowsEditing:YES];
//選完圖片之后回到的視圖界面
[self presentViewController:pickControl animated:YES completion:nil];
}
設置協議,需要頭文件中聲明一下:
@interface ViewController : UIViewController <UINavigationControllerDelegate,UIImagePickerControllerDelegate> @property (weak, nonatomic) IBOutlet UIImageView *imageView; @end
之后需要在返回的時候顯示圖片使用協議中的imagePickerController方法:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
// UIImage *image=info[@"UIImagePickerControllerOriginalImage"];
UIImage *image=info[@"UIImagePickerControllerEditedImage"];
[self.imageView setImage:image];
//選取完圖片之后關閉視圖
[self dismissViewControllerAnimated:YES completion:nil];
}
需要注意的,如果需要不需要編輯,獲取image的方法為:
UIImage *image=info[@"UIImagePickerControllerOriginalImage"];
最終效果演示:

