我正在窗口内切换视图。方向有时会混淆。
在其中一个窗口中,当我尝试显示应附加到工具栏按钮的弹出框时,它会显示在屏幕上的位置。如果我在物理上改变了设备的方向,弹出框会在正确的位置重绘。如果我再次将其切换回来,它将被绘制在正确的位置。如果我关闭弹出框并尝试再次显示它,它会再次显示在错误的位置。
建议表示赞赏。
我正在窗口内切换视图。方向有时会混淆。
在其中一个窗口中,当我尝试显示应附加到工具栏按钮的弹出框时,它会显示在屏幕上的位置。如果我在物理上改变了设备的方向,弹出框会在正确的位置重绘。如果我再次将其切换回来,它将被绘制在正确的位置。如果我关闭弹出框并尝试再次显示它,它会再次显示在错误的位置。
建议表示赞赏。
在这里,当您从视图中显示弹出框控制器时,首先您需要检查您现在拥有的位置,并根据方向您可以选择框架并从当前视图中打开弹出框控制器。你可以这样做:
if(UIAppDelegate.intOrientation == 1)
{
popoverController.popoverContentSize = CGSizeMake(570, 720);
[self.popoverController presentPopoverFromRect:CGRectMake(100, 150, 570, 720) inView:self.view permittedArrowDirections:NO animated:YES];
}
else
{
popoverController.popoverContentSize = CGSizeMake(820, 500);
[self.popoverController presentPopoverFromRect:CGRectMake(102, 135, 820, 500) inView:self.view permittedArrowDirections:NO animated:YES];
}
问题消失了,不知道为什么。我打开了 Apple 开发人员支持的问题。他们查看了我的代码并提出了一些未记录的指南。
一是不要在切换的视图之间混合屏幕方向。让他们都始终支持横向与否,纵向与否。
他们还表示,一次只能由一个控制器管理屏幕。
这个问题出现在 iPad 上的 iOS4.2 上。不知道这是否适用。