2014-09-25 132 views
0

我有一个应用程序需要在iPhone中纵向和横向模式下运行。即使ipad面向横向显示横向右视图

一切工作正常的所有模式。 如果用户将手机转为横向离开模式,则视图显示为横向左侧,如果用户将设备转至横向右侧,则视图旋转至横向右侧。

而我想要的是在设备的方向LandscapeLeft和LandscapeRight上触发LandscapeLeft视图。

技术上可行吗?我觉得不是。 那么有什么办法可以做到这一点?

编辑:为了使这个概念更清晰,我添加了一个示例图像。图像中的手指必须始终指向iPhone设备的Home按键,无论在那里旋转(头朝下不支持) Portrait view

Landscape View

+0

因此,如果用户手持设备在风景权然后呢?你想让显示器颠倒吗? – Fogmeister 2014-09-25 13:28:14

+0

肖像就好了..在风景右边我也想要显示风景左边 – 2014-09-25 15:53:20

+1

我不明白你的意思“在风景右边我想让它显示左边的风景”。那是什么意思?左侧风景和右侧风景被称为是因为设备旋转的方式。让风景正确但没有离开似乎是任意的。为什么你不想让风景留下? – Fogmeister 2014-09-25 15:57:01

回答

-1

您可以选择设备定位选项,肖像,肖像颠倒过来,部署信息中的景观正确

+0

好友我想要所有的方向,除了景观左..但在拿着设备landscpae的权利,它必须显示景观左..你的解决方案将不会做任何事情时,从肖像向左横向 – 2014-09-25 15:56:09

+0

选择你需要的任何方向。除风景之外的所有方向都留下。因此,请选择纵向,纵向倒置,横向右侧。 – 2014-09-25 16:56:28

1

好吧,为了让这个工作起作用,您需要启用所有您想要工作的方向。

因此,启用左,右和纵向。

然后你有一个像...

enter image description here

现在你需要当设备方向是改变被调用的函数...

// pseudo code... 
- (void)orientationChanged 
{ 
    CGAffineTransform transform; 

    switch (currentOrientation) { 
     case portrait: 
      // rotate from pointing right to pointing down 
      transform = CGAffineTransformMakeRotation(M_PI/2); 
      break; 
     case left: 
      // flip horizontally 
      transform = CGAffineTransformMakeScale(-1, 1); 
      break; 
     case right: 
      // pointing right 
      transform = CGAffineTransformIdentity; 
      break; 
    } 

    self.pointingImageView.transform = transform; 
} 

或者这样的事情呢。

通过使用旋转和缩放,您可以在所有方向上制作相同的图像点。但你必须亲自去做。你不能只依靠改变方向来做到这一点。

如果你想为每个方向使用不同的图像,那么只需换出变换的东西来改变图像。虽然这个概念保持不变。

+0

这是正确的做法。基本上,任何内容都必须在其X和Y轴上翻转。 – Stonetip 2017-10-16 14:25:11

0

这是一个更通用的答案(适用于SVG,本地应用程序或其他),只是为了帮助人们可视化问题。 (根据我的经验,一旦你知道如何定义的问题,你可以找到办法来解决这些问题对于任何平台或编程语言)

diagram showing image conditions

我相信Fogmeister对这个问题的一个可行的解决方案。但请记住,翻转X轴和Y轴上的内容,你就能达到你想要的。