1

我正在开发一个 iPad 应用程序来拍照或从图书馆中选择。它工作正常,唯一的问题是当您按照以下步骤操作时相机布局不正确。

  1. 项目清单
  2. 点击 btnPhotoLibrary 按钮
  3. 取消弹出框
  4. 点击 btnCamera 按钮

当从 popover 打开全屏模式时,生成的布局与 Camera 中的图像具有不正确的屏幕位置非常相似 。

它的位置略低于屏幕边界。这意味着底部的控件位于屏幕以南 20px 的位置,并且屏幕顶部有一个 20px 的黑色带

如果您不点击 btnPhotoLibrary 而仅点击 btnCamera,则没有问题。

我们为相机和照片库使用相同的 UIImagePickerController 实例,因此我们可能需要在将其用作相机之前重置一些属性,但找不到方法。

--

- (void)viewDidLoad {
    [super viewDidLoad];
    _imagePicker = [[UIImagePickerController alloc]init];
    _imagePicker.allowsEditing = FALSE;
    _imagePicker.delegate = self;
}

-(IBAction)btnCamera:(id)sender{
    if ([popover isPopoverVisible]) {
        [popover dismissPopoverAnimated:YES];
    }
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
        _imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
        [self presentViewController:_imagePicker animated:YES completion:nil];
    }
}

-(IBAction)btnPhotoLibrary:(id)sender{
    _imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;    
    if ([popover isPopoverVisible]) {
        [popover dismissPopoverAnimated:YES];
    }
    popover = [[UIPopoverController alloc] initWithContentViewController:_imagePicker];
    [popover presentPopoverFromRect:btnCameraRoll.bounds inView:btnPhotoLibrary permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES];
}

目标操作系统是iOS6.1,横向视图。提前致谢。

4

1 回答 1

0

似乎重置to的view属性可以解决问题,但我想这与每次需要时创建一个新实例几乎相同。UIImagePickerControllernilUIImagePickerController

-(IBAction)btnCamera:(id)sender{
    if ([popover isPopoverVisible]) {
        [popover dismissPopoverAnimated:YES];
    }
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
        _imagePicker.view = nil;
        _imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
        [self presentViewController:_imagePicker animated:YES completion:nil];
    }
}
于 2013-06-20T05:32:05.237 回答