我正在创建一个UIScrollView子类,需要在设备方向更改时运行动画。为了做到这一点,我需要知道方向变化的确切持续时间。在一个视图控制器中我会使用它:
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
NSLog(@"%f", duration);
}
由于这是在子类中,我需要使用以下代码:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(orientationChanged:)
name:UIDeviceOrientationDidChangeNotification
object:nil];
然后调用选择器:
-(void)orientationChanged:(id)selector
{
NSLog(@"Orientation has changed");
}
唯一的问题是它没有告诉我设备方向的持续时间。有谁知道如何获得它?
答案 0 :(得分:2)
您正在寻找的属性是UIApplication的statusBarOrientationAnimationDuration
。这是90°旋转 - 如果你处理的是180°旋转,它会加倍。