我正在处理我的第一个Xcode项目,我想知道是否有可能有2个视图控制器,其中一个将有一个肖像视图,第二个将有水平。有什么办法可以将这两个视图控制器链接起来,以便在旋转设备时视图会改变?更改设备旋转视图控制器
回答
在viewDidLoad中,将旋转的视图添加到超级视图中,并使用对象[UIDevice currentDevice]将注册观察者注册到UIDeviceOrientationDidChangeNotification。 在选择器上设置其框架。然后转动新的旋转视图中,并设置旧观点的alpha为0.0
- (void)deviceOrientationChangedNotification:(NSNotification *)notification
{
UIDevice *device = [notification object];
UIDeviceOrientation orientation = device.orientation;
if (orientation == UIDeviceOrientationLandscapeLeft || orientation == UIDeviceOrientationLandscapeRight)
{
[rotatedView setTransform:CGAffineTransformMakeRotation(M_PI_2)];
rotatedView.frame = [UIScreen mainScreen].bounds;
oldView.alpha = 0.0;
}
}
我不建议你这样做,因为有一些苹果已经设计用于管理应用程序的导航intuitives UI控制器,您不能让用户猜测如何在您的应用中执行某些任务,您必须向他们展示如何执行此操作。 因此,旋转设备以转到另一个视图控制器,如同您所说:旋转时我需要一个完全不同的视图...不是一个好主意。
阅读完整的iOS人机界面指南,看看我们推荐什么样的,什么是不:
iOS Human Interface Guidelines
特别要阅读:Adaptivity and Layout:
避免在布局无偿变化。在所有环境中都有类似的体验,让用户在旋转设备或在不同设备上运行应用时可以保持其使用模式。例如,如果使用网格在横向常规环境中显示图像,则不必在水平紧凑环境中的列表中显示相同的信息,但可以调整网格的尺寸。
也许你可以详细说明你推荐的原因吗? HIG涵盖了很多理由 - 只是提供链接并不能真正帮助解释你的推理。 (另外,让你的答案完全依赖于一个链接 - 链接不会中断是个好主意。) – Caleb 2015-02-05 16:41:17
改变另一个viewController不是一个好主意,我必须旋转这个设备,这不是一个直观的和正确的方式来管理应用程序的导航(这是他想要的)。很显然,他是一个非常业余的人,并没有阅读关于iOS界面的苹果指南(我通过链接推荐他,我不会用这种方式向他解释所有的指南)。 – 2015-02-05 17:02:17
一款应用程序在不同的方向呈现出不同的风格并不鲜见 - 例如尝试旋转苹果的“股票”应用程序。有时单个视图控制器可以管理两个方向,但同时对每个方向使用单独的控制器也许有意义。请注意,单词*免费*并不意味着*全部*。我并不是说你错了,只是除非你解释,否则不可能理解你的建议。 – Caleb 2015-02-05 18:53:35
- 1. 旋转视图控制器
- 2. 视图控制器层级和设备方向更改
- 3. 视图控制器上旋转
- 4. 多视图控制器和旋转
- 5. 从设备到设备的Android图像旋转更改
- 6. 父视图控制器不会在提供子视图控制器时旋转
- 7. 子视图控制器旋转,同时父视图控制器不
- 8. 设备旋转时的新视图
- 9. 设备旋转“刷新”视图
- 10. 方向更改,何时都是我的视图控制器旋转?
- 11. 更改视图控制器Swift 3
- 12. iphone如何更改视图控制器
- 13. 更改视图控制器 - SIGABRT
- 14. 分段控制改变时更改视图控制器
- 15. 设备旋转时更改自定义输入视图的高度
- 16. 如何限制视图控制器在ios 8中的旋转?
- 17. 导航控制器+段控制器:无法更改视图
- 18. 从控制器更改视图不触发视图更新
- 19. 容器视图控制器中UIPageViewController的旋转
- 20. 更改根视图控制器和关闭所有视图控制器
- 21. 防止导航控制器中的一些视图控制器旋转
- 22. 如何防止标签栏控制器中的视图控制器旋转?
- 23. 在iPad(iOS6)中旋转拆分视图控制器时更改为其他视图
- 24. 不要自动旋转视图控制器,但显示UIAlertView旋转
- 25. 如何旋转控制器中不允许旋转其界面的视图?
- 26. 视图控制器设置
- 27. 设置根视图控制器的模态视图控制器
- 28. iphone无法在TabBar控制器中旋转视图
- 29. 如何避免父视图控制器旋转
- 30. 如何在iPhone旋转时推送全屏视图控制器?
您是否希望对旋转有完全不同的看法,或者您是否只希望子视图调整其大小?如果是后者,则应该使用AutoLayout或Size Classes。 – BSMP 2015-02-05 16:08:26
我想要一个完全不同的视图,当它旋转 – John 2015-02-05 16:08:55