0

在我的 iPad 应用程序中,我正在录制视频(UIImagePickerController在 a 中UIPopoverController)。

问题是当我改变设备的方向时,尺寸会UIPopoverController减小到 320x480(纵向)和 480x320(横向)。令人惊讶的是,完全相同的尺寸(600x880)在我创建它时工​​作正常,但在我旋转它时却不行。

这是我的初始化方式:

self.popover = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
popover.delegate = self;
if ([[UIApplication sharedApplication] statusBarOrientation] == UIDeviceOrientationPortrait || [[UIApplication sharedApplication] statusBarOrientation] == UIDeviceOrientationPortraitUpsideDown) {
    [self.popover presentPopoverFromRect:CGRectMake(109, 590, 550,500) inView:self.view permittedArrowDirections:0 animated:YES];//recordProtocolBtn.frame
    [self.popover setPopoverContentSize:CGSizeMake(600, 880)];
}
else {
    [self.popover presentPopoverFromRect:CGRectMake(750, 110, 550, 600) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES];
    [self.popover setPopoverContentSize:CGSizeMake(600, 600)];
}

旋转到纵向:

[self.popover dismissPopoverAnimated:NO];
[self.popover presentPopoverFromRect:CGRectMake(109, 590, 550,500) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
[self.popover setPopoverContentSize:CGSizeMake(600, 880)];

并旋转到景观:

[self.popover dismissPopoverAnimated:NO];
[self.popover presentPopoverFromRect:CGRectMake(750, 110, 550, 600) inView:self.view permittedArrowDirections:0 animated:YES];
[self.popover setPopoverContentSize:CGSizeMake(600, 600)];
4

1 回答 1

2

我所做的并不是严格意义上的解决方案,而是一种解决方法。

我在提交时禁用了方向更改通知,UIPopoverController并在我关闭它时启用了它们,使用此答案的帮助

这样应用程序运行顺利,因为我认为用户不会喜欢应用程序在视频录制过程中旋转。

于 2013-03-01T04:21:53.350 回答