1

我创建了一个 iPad 应用程序,它在横向和纵向都可以正常工作。除非将应用程序旋转为横向,否则弹出框的位置不正确。有没有办法添加if类似伪代码的语句:

if in portrait CGRect
    use size S1 location L1
else if in landscape CGRect
    use size S2 location L2

我的代码:

UIPopoverController* popover = [[UIPopoverController alloc] initWithContentViewController:TweetFeed];
[popover setDelegate:self];
[popover presentPopoverFromRect:CGRectMake(401, 401, 220, 300) inView:self.view  permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
[popover setPopoverContentSize:CGSizeMake(320, 150)];
4

1 回答 1

0

Apple 的 UIPopoverController 文档解决了这个问题:

如果用户在弹出框可见时旋转设备,弹出框控制器会隐藏弹出框,然后在旋转结束时再次显示。弹出框控制器尝试为您适当地定位弹出框,但在某些情况下您可能必须再次显示或完全隐藏它。例如,当从条形按钮项显示时,弹出框控制器会自动调整弹出框的位置(可能还有大小)以考虑条形按钮项位置的变化。但是,如果您在旋转期间移除了条形按钮项目,或者如果您从视图中的目标矩形呈现弹出框,则弹出框控制器不会尝试重新定位弹出框。在这些情况下,您必须手动隐藏弹出框或从适当的新位置再次显示它。

于 2012-10-30T19:02:30.627 回答