我的应用程序需要在iPhone中以纵向和横向模式运行。
所有模式都能正常运行。 如果用户将手机转到LandscapeLeft模式,视图将以左侧横向显示,如果用户将设备转为LandscapeRight,则视图将旋转为横向右侧。
而我想要的是在设备的LandscapeLeft和LandscapeRight的方向上触发LandscapeLeft视图。
技术上可行吗?我觉得不是。 有没有办法实现这个目标?
编辑:为了使概念更清晰,我添加了一个示例图片。无论旋转的位置如何,图像中的手指必须始终指向iPhone设备的“主页”按钮(不支持倒置)
答案 0 :(得分:1)
好的,为了让这个工作起作用,你需要启用你想要工作的所有方向。
因此,启用左,右和纵向。
然后你有一张图片......
现在你需要在设备方向改变时调用的函数......
// 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 :(得分:0)
这是一个更通用的答案(适用于SVG,本机应用程序或其他),只是为了帮助人们可视化问题。 (根据我的经验,一旦你知道如何定义问题,你就可以找到解决任何平台或编程语言的方法)
我相信Fogmeister对这个问题有一个可行的解决方案。但请记住,翻转X和Y轴上的内容,你就可以达到你想要的效果。
答案 2 :(得分:-1)
您可以选择设备方向选项,如纵向,纵向倒置,部署信息中的横向右侧