我正在开发一款应用,让用户可以选择为自己的个人资料照片拍照,但似乎无法弄清楚如何:
有什么建议吗?这段代码可能完全关闭,但这是我开始使用的:
- (void)takePhoto {
UIImagePickerController *takePhotoPicker = [[UIImagePickerController alloc] init];
if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) {
takePhotoPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
takePhotoPicker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
} else {
takePhotoPicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
}
[self presentViewController:takePhotoPicker animated:YES completion:nil];
}
答案 0 :(得分:1)
您需要做的是将viewController注册为UIImagePickerControllerDelegate,然后执行:
takePhotoPicker.delegate = self;
然后,您需要添加方法:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {}
可用于获取图像。
要从相机或相册中获取图像,您需要从info
字典中获取正确密钥的值。
例如,要获取已编辑的图像(由用户调整大小):
UIImage *image = [info valueForKey:UIImagePickerControllerEditedImage];
获得原始图片:
UIImage *image = [info valueForKey:UIImagePickerControllerOriginalImage];
原始图像是用户使用相机拍摄的全屏图像。
然后,您可以使用此图像设置图像视图或上传到服务器等。
此外,您不应根据相机是否可用来设置源类型,但您应该让用户选择(如果他们想要从相册中选择,即使他们有相机)。< / p>