UIPopOverController在自动旋转时发出问题

时间:2011-09-22 09:46:30

标签: uipopovercontroller

我使用PresentPopOverFromRect:方法呈现UIPopovercontroller。在纵向方向。当我自动旋转到风景UIPopoverController没有出现在正确的位置。如何在自动旋转设备时定位UIPopoverController。

2 个答案:

答案 0 :(得分:0)

您需要覆盖此功能:

- (void)willAnimateRotationToInterfaceOrientation:
(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

您可以根据当前方向更改UIPopovercontroller的尺寸和位置。此功能很方便,因为它是在重新绘制屏幕之前和用户界面开始旋转之前调用的。

您应该查看tutorial以了解如何处理IPad不同方向的布局。

答案 1 :(得分:0)

是的,正如tiguero所说,在您的自定义UIViewController中,您可以覆盖该方法:

-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
    [self.popOverViewController dismissPopoverAnimated:NO];
    CGRect yourNewRect = CGRectMake(0.0, 0.0, 20, 20);
    [self.popOverViewController presentPopoverFromRect:yourNewRect inView:yourView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}

你可以尝试一下!