UIViewController:识别方向正在进行中

时间:2011-08-12 06:08:29

标签: iphone orientation progress

我正在开发一个iPhone应用程序。 UIViewController中是否有任何默认状态/访问者告知方向是否正在进行中?

目前我已做过以下事情:

BOOL的子类中的UIViewController成员说isOrientationChangeInProgress

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
isOrientationChangeInProgress = YES;
}

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
isOrientationChangeInProgress = NO;
}

还有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

Apple建议在willRotateToInterfaceOrientation:duration:中启动任何动画,因此在调用该方法后很快就会轮换。持续时间属性告诉您旋转完成后调用didRotateFromInterfaceOrientation:所需的时间,或者稍后的持续时间。

所以,我认为你的BOOL是事后才做的最好的事情。我不明白为什么你需要知道这一点;也许你想要的结果可以通过不同的方式实现。你想做什么?

答案 1 :(得分:0)

您也可以要求被告知设备方向信息:

    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:)
                                                 name:UIDeviceOrientationDidChangeNotification object:nil];

然后你会在orientationChanged中告诉你:当发生变化时