4

我正在窗口内切换视图。方向有时会混淆。

在其中一个窗口中,当我尝试显示应附加到工具栏按钮的弹出框时,它会显示在屏幕上的位置。如果我在物理上改变了设备的方向,弹出框会在正确的位置重绘。如果我再次将其切换回来,它将被绘制在正确的位置。如果我关闭弹出框并尝试再次显示它,它会再次显示在错误的位置。

建议表示赞赏。

4

2 回答 2

1

在这里,当您从视图中显示弹出框控制器时,首先您需要检查您现在拥有的位置,并根据方向您可以选择框架并从当前视图中打开弹出框控制器。你可以这样做:

    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];
    }
于 2011-06-20T18:16:24.330 回答
1

问题消失了,不知道为什么。我打开了 Apple 开发人员支持的问题。他们查看了我的代码并提出了一些未记录的指南。

一是不要在切换的视图之间混合屏幕方向。让他们都始终支持横向与否,纵向与否。

他们还表示,一次只能由一个控制器管理屏幕。

这个问题出现在 iPad 上的 iOS4.2 上。不知道这是否适用。

于 2011-11-23T14:14:11.530 回答