需要保持自转,但是如何排除一个UIView在方向改变时自动旋转,怎么做?
我需要在动画期间保持UIView静止,伴随着自转(在方向改变时发生)。类似于iOS相机应用程序处理旋转的方式(即控件在其位置旋转)。
从false
返回shouldAutorotate()
,订阅UIDeviceOrientationDidChangeNotification
,并尝试分别为每个视图手动处理轮换事件。
如果您不需要更改任何UIViews的位置,那么效果很好,否则很难确定它应该在哪里结束以及如何在那里实现
在主UIWindow下放置一个非旋转UIWindow,并将主UIWindow背景颜色设置为清除。
如果它只有一个项目,但我不想管理一堆UIWindows
反向旋转即旋转UIView的方向与旋转方向相反。 不可靠,看起来很奇怪,也是眩晕诱发
覆盖viewWillTransitionToSize
方法中的动画。的 失败
还有很多其他难以在此列出的内容,但它们都 失败 。
可以这样做吗?如果是这样,怎么样?
我支持iOS8 +
更新以下是@Casey's example视图布局/定位的方式:
答案 0 :(得分:2)
我遇到了同样的问题,并从Apple找到了一些示例,这有助于防止UIView轮换:https://developer.apple.com/library/ios/qa/qa1890/_index.html
但是,如果UIView未放置在屏幕中央,则应手动处理新位置。
答案 1 :(得分:0)
我认为这很难回答的部分原因是因为在实践中它并没有真正意义。
说我制作了一个使用autolayout在纵向和横向中看起来像这样的视图:
如果你想像你要问的那样阻止c旋转,你期望最终视图看起来像什么?它会是这3个选项中的一个吗?
没有您想要实现的肖像/风景视图的图形,并且您希望它的动画描述将很难回答您的问题。
您使用NSLayoutConstraint
,故事板或基于框架的数学来布置视图吗?你能提供的任何代码都会很棒
答案 2 :(得分:0)