首页 文章

即使ipad面向横向左侧,也会显示横向右视图

提问于
浏览
0

我有一个应用程序,需要在iPhone中以纵向和横向模式运行 .

在所有模式下一切正常 . 如果用户将手机转到LandscapeLeft模式,视图将显示在Landscape左侧,如果用户将设备转为LandscapeRight,则视图将旋转到Landscape Right .

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

技术上可行吗?我觉得不是 . 有没有办法实现这个目标?

EDIT: 为了使概念更清晰,我添加了一个示例图像 . 无论旋转的位置如何,图像中的手指必须始终指向iPhone设备的“主页”按钮(不支持倒置)
Portrait view

Landscape View

3 回答

  • -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;
    }
    

    或者类似的东西无论如何 .

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

    如果您想为每个方向使用不同的图像,那么只需更换变换图像即可 . 但这个概念仍然是一样的 .

  • 1

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

    diagram showing image conditions

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

  • 0

    您可以在部署信息中选择设备方向选项,如纵向,纵向倒置,横向右侧

相关问题