Tas*_*que 8 uiview uiimageview uiimagepickercontroller ipad ios
我有按钮,当我点击显示相机(完美的工作)
- (IBAction)getPhoto:(id)sender
{
NSLog( @"Button clicked!" );
imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
}
else { // IF the device doesn't have a camera, so use the photos album
[imagePicker setSourceType:UIImagePickerControllerSourceTypeSavedPhotosAlbum];
}
[self addSubview:imagePicker.view];
}
Run Code Online (Sandbox Code Playgroud)
之后我可以拍摄图像,等等 - 但是当我点击"使用"时:这里没有任何反应是我的方法:图像选择器没有解雇它的方法:应用程序根本什么都不做,我正试图拍摄我只是的图像将其显示在屏幕上的CGRect中.
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissViewControllerAnimated:YES completion:NULL];
UIImageView *patientImage = [[UIImageView alloc] init];
patientImage.frame = CGRectMake(625, 25, 83, 103);
UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
self.patientImage.image = chosenImage;
}
Run Code Online (Sandbox Code Playgroud)
即使我在没有拍摄图像的情况下点击取消按钮,imagePicker(相机界面)也不会自行解除
任何帮助,建议或指导将非常感激.
[self presentViewController:imagePicker animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
您应该将选择器添加到a,而不是将选择器添加为子视图UIPopoverController.
然后,您可以UIView使用如下的presentPopoverFromRect:inView:permittedArrowDirections:animated:popover方法在子类中显示它:
self.popover = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
[self.popover presentPopoverFromRect:sender.frame inView:self permittedArrowDirections: UIPopoverArrowDirectionAny animated:YES];
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用委托方法来解除弹出窗口:
[self.popover dismissPopoverAnimatedYES];
Run Code Online (Sandbox Code Playgroud)
在被要求的官方文档:
该表指示在iPad上,如果指定源类型为
UIImagePickerControllerSourceTypePhotoLibrary或UIImagePickerControllerSourceTypeSavedPhotosAlbum,则必须使用弹出控制器显示图像选择器,如"UIPopoverController类参考"中的"演示和解除弹出"中所述.如果您尝试以模态方式(全屏)呈现图像选择器以便在保存的图片和电影中进行选择,系统会引发异常.在iPad上,如果指定源类型
UIImagePickerControllerSourceTypeCamera,则可以模态(全屏)或使用弹出窗口显示图像选择器.但是,Apple建议您仅全屏显示相机界面.
方法是getPhoto:在UIView子类中吗?
如果是这样的话,那么最好:
将getPhoto:代码完全移出子UIView类,并将其放入视图的父视图控制器中。
使你UIButton的 UIView 的属性:@property (nonatomic, strong) UIButton *myButton;
在视图控制器中,设置按钮的目标和操作,如下所示:
[myView.myButton addTarget:self action:@selector(getPhoto:) forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)最后,在您的getPhoto:方法中调用[self presentViewController:imagePicker animated:YES completion:NULL];
您的- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info代码也应该进入视图控制器,更改self.patientImage.image = chosenImage;为myView.patientImage.image = chosenImage;
| 归档时间: |
|
| 查看次数: |
7680 次 |
| 最近记录: |