如何在iPad上更改UIImagePickerController的大小宽度?

ij_*_*ij_ 3 objective-c uiimagepickercontroller ipad uipopovercontroller ios

如何改变的大小宽度UIImagePickerControlleriPad?我可以改变高度,所以它是700但不能改变宽度,它仍然是320.我的代码.

 UIImagePickerController*  imagePicker=[[UIImagePickerController alloc]init];
 imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
 imagePicker.delegate=self;
 CGRect myRect = CGRectMake(imagePicker.view.frame.origin.x, imagePicker.view.frame.origin.y, 720, 700);
 imagePicker.view.frame = myRect;
 self.popover = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
 myRect = CGRectMake(100, 880, 900, 900);
 CGRect re2 = CGRectMake(0,0,800,800);
 [self.popover setPopoverContentSize:re2.size];
 [self.popover presentPopoverFromRect:[self.view bounds] inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
 [self.popover presentPopoverFromRect:myRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];      
 [self.popover setPopoverContentSize:re2.size];
Run Code Online (Sandbox Code Playgroud)

小智 10

我遇到了同样的问题,我用UINavigationControllerDelegate解决了,因为PhotoLibrary的UIImagePickerView内容是一个navigatorController.当您选择一行时,它会更改ViewController,并且弹出窗口的大小也会更改.所以,在你的willShowViewController委托中只需要:

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    viewController.contentSizeForViewInPopover = CGSizeMake(800, 800);
}
Run Code Online (Sandbox Code Playgroud)

这将阻止弹出窗口的大小调整.