gpt4 book ai didi

iphone - 立即检测 iOS 方向变化

转载 作者:IT老高 更新时间:2023-10-28 11:32:23 36 4
gpt4 key购买 nike

我有一个游戏,其中设备的方向会影响游戏的状态。用户必须在横向、纵向和反向横向方向之间快速切换。到目前为止,我一直在通过以下方式注册游戏以获取方向通知:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

但这太慢了——在转动手机和实际触发通知之间似乎有大约一秒钟的延迟。我需要一种方法来立即检测设备方向的变化。我尝试过使用陀螺仪进行试验,但对它还不够熟悉,无法知道它是否是我正在寻找的解决方案。

最佳答案

viewWillAppear函数中添加通知器

-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil];
}

方向改变通知此函数

- (void)orientationChanged:(NSNotification *)notification{
[self adjustViewsForOrientation:[[UIApplication sharedApplication] statusBarOrientation]];
}

在处理moviePlayerController帧方向的地方又调用这个函数

- (void) adjustViewsForOrientation:(UIInterfaceOrientation) orientation {

switch (orientation)
{
case UIInterfaceOrientationPortrait:
case UIInterfaceOrientationPortraitUpsideDown:
{
//load the portrait view
}

break;
case UIInterfaceOrientationLandscapeLeft:
case UIInterfaceOrientationLandscapeRight:
{
//load the landscape view
}
break;
case UIInterfaceOrientationUnknown:break;
}
}

viewDidDisappear中移除通知

-(void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
[[NSNotificationCenter defaultCenter]removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil];
}

我想这是 你可以根据方向改变 View 的最快速度

关于iphone - 立即检测 iOS 方向变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12085990/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com