首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UITraitCollection iPad如何检测当前方向

UITraitCollection iPad如何检测当前方向
EN

Stack Overflow用户
提问于 2015-02-22 16:21:22
回答 4查看 4.5K关注 0票数 3

因为iOS8检测UIViewController方向的方法是不可取的。

例如,不推荐-interfaceOrientation,为了检测当前视图控制器的方向,我们似乎需要向视图控制器上的-traitCollection属性询问此信息。

我有点困惑,iPad在这两个方向上都有自己的特点。

检测当前方向的最佳方法是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-06-15 19:21:49

使用-orientation属性UIDevice是不正确的(即使它可以在大多数情况下工作),并可能导致一些错误,例如,UIDeviceOrientation也考虑设备的方向,如果它是朝上或向下的,在UIInterfaceOrientation枚举中没有针对这些值的对。

此外,如果您锁定您的应用程序在某些特定的方向,UIDevice将给您的设备方向,而不考虑这一点。

另一方面,iOS8在UIViewController类上不推荐使用interfaceOrientation属性。

有两个选项可用于检测接口方向:

  • 使用状态栏方向
  • 在iPhone上使用size类,如果它们没有被重写,它们可以为您提供一种理解当前接口方向的方法

仍然缺少的是理解界面方向变化方向的方法,这在动画中是非常重要的。

在2014年“查看控制器在iOS8中的进步”的会议上,演讲者也提供了一个解决这个问题的方法,使用了替代-will/DidRotateToInterfaceOrientation的方法。

在此,提议的解决办法部分得到执行:

代码语言:javascript
复制
-(void) viewWillTransitionToSize:(CGSize)s withTransitionCoordinator:(UIVCTC)t {
    orientation = [self orientationFromTransform: [t targetTransform]]; 
    oldOrientation = [[UIApplication sharedApplication] statusBarOrientation]; 
    [self myWillRotateToInterfaceOrientation:orientation duration: duration]; 
    [t animateAlongsideTransition:^(id <UIVCTCContext>) {
         [self myWillAnimateRotationToInterfaceOrientation:orientation
                                                  duration:duration];
      }
      completion: ^(id <UIVCTCContext>) {
         [self myDidAnimateFromInterfaceOrientation:oldOrientation];
      }];
}
票数 2
EN

Stack Overflow用户

发布于 2015-02-22 16:41:21

查找UIDeviceOrientation部分的UIDevice及其定向属性。这些文档是这里。我就是这样做定向检查的。您还可以看到屏幕宽度是否大于屏幕高度,因为有时,特别是在应用程序的第一次启动时,它将是UIDeviceOrientationUnknown。

票数 1
EN

Stack Overflow用户

发布于 2015-06-15 14:49:26

最佳实践是使用大小类而不是面向设备。

iPad在两个方向上都有规则的大小,因为无论方向如何,iPad在垂直和水平上都有足够的空间容纳内容。

您应该考虑为什么您希望在纵向和横向方向上不同地对待iPad显示,并在这里更清楚地解释为什么大小类不能满足您的需要。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28660145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档