4

我正在开发一个 iPad 应用程序,其中有一个按钮,可以生成一个弹出框控制器,我正在使用特定的视图控制器填充该控制器。这是生成 UIPopoverController 并使用特定视图 (signUpListAddEditViewController) 加载它的按钮代码:

-(void)addSignUpList:(id)sender {
    signUpListAddEditViewController = [[SignUpListAddEditViewController alloc] init];
    popover = [[UIPopoverController alloc] initWithContentViewController:signUpListAddEditViewController];
    popover.popoverContentSize = signUpListAddEditViewController.view.frame.size;
    [popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
    signUpListAddEditViewController.popover = popover;
}

在 SignUpListAddEditViewController.m 中,我有几个字段和一个表格视图。其中一个字段是 UIButton,我在其中显示图像并允许用户使用此按钮加载新图像。由于我已经在弹出窗口中,我将内容控制器与 UIImagePickerController 交换。到目前为止,一切都很好。

-(void)takePicture:(id)sender
{
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    [imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
    [popover setPopoverContentSize:popupScreenSize animated:YES]; // popupScreenSize is a CGSIZE set to 500 x 900
    [popover setContentViewController:imagePicker animated:YES];
}

视图与 imagePicker 交换,大小与原始视图相同,我可以看到各种图片库(相机胶卷、照片流等)。这就是奇怪的地方。一旦我选择了其中一个画廊,该视图就会被该画廊中图片的缩略图视图替换,然后视图将调整为更窄的宽度。图像失真,几乎不可能选择其中之一。

我已经尝试在每次访问弹出框控制器之前设置 [popover setPopoverContentSize:CGSIZE animated:YES] ,除了详细的图像视图之外,所有内容都正确调整大小?有什么想法可以覆盖缩略图图库视图吗?

这是 didFinishPickingMediaWithInfo 方法的代码,我再次覆盖了内容大小:

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
    [thisList setThumbnailDataFromImage:image];
    [popover setPopoverContentSize:popupScreenSize animated:YES];
    [popover setContentViewController:self animated:YES];
    listImageButton.imageView.image = image;
}
4

0 回答 0