我正在开发一个iPhone应用程序。 UIViewController
中是否有任何默认状态/访问者告知方向是否正在进行中?
目前我已做过以下事情:
BOOL
的子类中的UIViewController
成员说isOrientationChangeInProgress
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
isOrientationChangeInProgress = YES;
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
isOrientationChangeInProgress = NO;
}
还有更好的方法吗?
答案 0 :(得分:0)
Apple建议在willRotateToInterfaceOrientation:duration:
中启动任何动画,因此在调用该方法后很快就会轮换。持续时间属性告诉您旋转完成后调用didRotateFromInterfaceOrientation:
所需的时间,或者稍后的持续时间。
所以,我认为你的BOOL是事后才做的最好的事情。我不明白为什么你需要知道这一点;也许你想要的结果可以通过不同的方式实现。你想做什么?
答案 1 :(得分:0)
您也可以要求被告知设备方向信息:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:)
name:UIDeviceOrientationDidChangeNotification object:nil];
然后你会在orientationChanged中告诉你:当发生变化时