当前位置: 首页 > 面试题库 >

检测iOS UIDevice方向

江温书
2023-03-14
问题内容

我需要检测设备何时处于纵向方向,以便可以触发特殊的动画。但是我不希望我的观点自动旋转。

将设备旋转到纵向时,如何覆盖自动旋转的视图?我的应用程序仅需要以横向显示视图,但是如果我想能够检测到纵向旋转,似乎还需要支持纵向。


问题答案:

当应用程序加载或视图加载时,尝试执行以下操作:

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

然后添加以下方法:

- (void) orientationChanged:(NSNotification *)note
{
   UIDevice * device = note.object;
   switch(device.orientation)
   {
       case UIDeviceOrientationPortrait:
       /* start special animation */
       break;

       case UIDeviceOrientationPortraitUpsideDown:
       /* start special animation */
       break;

       default:
       break;
   };
}

以上内容可让您注册设备的方向更改,而无需启用视图的自动旋转。

在iOS的所有情况下,当您添加观察者时,还应在适当的时间(可能但并非总是在视图出现/消失时)将其移除。您只能具有“成对”的观察/取消观察代码。如果不这样做,该应用程序将崩溃。选择观察/不观察的位置超出了此质量检查的范围。但是,您必须具有“取消观察”才能与上面的“观察”代码匹配。



 类似资料:
  • 问题内容: 因此,我正在尝试使用JavaScript 调用函数。但是我想知道是否可以在不使用jQuery的情况下检测滚动方向。如果没有,那么有什么解决方法吗? 我本来只是想放一个“置顶”按钮,但我想避免这种情况。 我现在刚刚尝试使用此代码,但是没有用: 问题答案: 可以通过存储先前的scrollTop值并将其与当前scrollTop值进行比较来检测到它。 JS:

  • 我正在制作我的第一个自由移动(不是瓷砖限制)2d游戏,想知道如何使用冲突检测。我有3种可能的方法在我的脑海中,但不确定什么是最有效的: > 地图上的每个物体都有一个比图像本身更小的纹理(例如,一棵树只有一个更小的纹理代表它的底部),不能碰撞。为此,我会使用第二个不可见的纹理来标记该区域。 每个对象都有一个用于碰撞的矩形或圆形区域。可能每个纹理都需要一个辅助文件,说明碰撞的大小(再次以树为例)。 我

  • 问题内容: 我使用的是Swift,我希望能够在旋转到风景时加载UIViewController,有人可以指出正确的方向吗? 我在网上找不到任何东西,并且对文档有些困惑。 问题答案: 这是我的工作方式: 在里面 我把函数: 然后在AppDelegate类中放入以下函数: 希望这对其他人有帮助! 谢谢!

  • 问题内容: 我想编写一个简单的Java代理,它可以打印所检测的Java程序调用的方法的名称。 例如,我要检测的Java程序是: 我想显示这样的东西: 谢谢你的帮助! 问题答案: 您可以使用Javassist之类的工具库来执行此操作。 让我为您提供一个方法的示例,您可以使用Javassist或反射将其扩展到所有方法: 检查此链接以获取详细信息: http // www.csg.ci.iu- toky

  • 问题内容: 我在测试应用程序中成功实现了OpenCV平方检测示例,但是现在需要过滤输出,因为它很乱-还是我的代码错误? 我对减少偏斜(如那样)和进一步处理的四个角落很感兴趣…… 码: 编辑17/08/2012: 要在图像上绘制检测到的正方形,请使用以下代码: 问题答案: 这是反复出现的主题,由于我找不到相关的实现,因此决定接受挑战。 我对OpenCV中存在的squares演示进行了一些修改,下面生

  • 问题内容: 是否可以使用JavaScript在iPad或Galaxy Tab上检测浏览器方向的变化?我认为使用CSS媒体查询是可能的。 问题答案: 更新: 您可能要签出 jQuery移动方向更改 或普通的JS之一: MDN: 较旧的答案 http://www.nczonline.net/blog/2010/04/06/ipad-web-development- tips/ iPad上的Safari