[英]Xcode: Image taken from camera directly placed in UIImageView
我試圖獲取從相機拍攝的圖像,然后將比拍攝的圖像放置到UIImageView中(不使用相機膠卷-只是直接從相機到UIImageView)。 我已經盡力了數周的嘗試來解決此問題,但沒有成功。 有誰知道為什么這不起作用?
僅供參考,我在做什么?
如果一個明智的編碼器可以幫助我解決這個問題,我將不勝感激。 我覺得自己正在做我正在閱讀的所有事情,別人正在告訴我要做。 任何代碼類型的更正將非常有幫助。 謝謝!
- (IBAction)cameraButtonPushed:(id)sender {
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] == NO) {
//todo if device has no camera
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Unable To Locate Camera" message:@"No Camera found." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
}
else {
UIImagePickerController *cameraUI = [[UIImagePickerController alloc] init];
cameraUI.delegate = delegate;
cameraUI.allowsEditing = YES;
cameraUI.sourceType = UIImagePickerControllerSourceTypeCamera;
cameraUI.mediaTypes =
[UIImagePickerController availableMediaTypesForSourceType: UIImagePickerControllerSourceTypeCamera];
[self presentViewController:cameraUI animated:YES completion:^{
}];
}
}
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[picker dismissViewControllerAnimated:YES completion:^{
UIImage *takenImage = [info valueForKey:UIImagePickerControllerEditedImage];
[self.navigationController pushViewController:self animated:YES];
image = [[UIImageView alloc] initWithImage:takenImage];
}];
}
嘗試這個:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[picker dismissViewControllerAnimated:YES
completion:^{
UIImage *takenImage = [info valueForKey:UIImagePickerControllerEditedImage];
image = [[UIImageView alloc] initWithImage:takenImage];
[self.view addSubview:image];
//or if object is connected properly via IB then simply
//[image setImage:takenImage];
}];
}
並且根據@DouglasFerreira的敏銳觀察
cameraUI.delegate = delegate;
應該
cameraUI.delegate = self;
如果image
是IBOutlet
,則不必初始化它:它將由情節提要或XIB完成。 嘗試只設置圖像:
[image setImage: takenImage];
您可以使用以下代碼完成任務,但請確保將視圖控制器委托給UIImagePickerControllerDelegate,UINavigationControllerDelegate
- (IBAction)takePhoto:(id)sender {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:picker animated:YES completion:NULL];
}
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info {
UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
self.imageView.image = chosenImage;
[picker dismissViewControllerAnimated:YES completion:NULL];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.