我需要禁用方向更改时播放的动画.这可能吗?如果没有,是否可以加快速度?
只是为了澄清,我不想停止方向改变,只是动画.我希望立即改变方向.
我想做什么:
由父视图控制器管理的父视图不应该旋转.
由子视图控制器管理的子视图应该旋转到所有方向.
我试过的:
ParentViewController
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return .Portrait
}
override func shouldAutorotate() -> Bool {
return true
}
fun addChildViewController() {
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
self.childViewController = storyBoard("Child View Controller") as? ChildViewController
self .addChildViewController(self.childViewController!)
self.childViewController! .didMoveToParentViewController(self)
self.view .addSubview(self.childViewController!.view)
self.childViewController!.view.frame = CGRectMake (40, 200, 400, 250)
}
Run Code Online (Sandbox Code Playgroud)
ChildViewController
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return .All
}
override func shouldAutorotate() -> Bool {
return true
}
Run Code Online (Sandbox Code Playgroud)
Xcode部署信息中支持的方向设置为全部四个.
我得到了什么:
没有View的旋转.如果我将父级的旋转设置为all,则所有视图一起旋转.所以它是全有或全无. …
xcode uiviewcontroller landscape-portrait childviewcontroller swift
一个简单的问题,但我无法找到它的解决方案:
我有2个UIViews,在同一个父视图中一个在另一个之上.两者都有GestureRecognizers,但只有最顶级的是接收事件.如何让最顶层的视图通过他获取到其下面的其他UIViews的所有手势?
需要保持自转,但排除一个UIView在方向改变时自动旋转,如何?
我需要在动画期间保持UIView静止,伴随着自转(在方向改变时发生).类似于iOS相机应用程序处理旋转的方式(即控件在其位置旋转).
返回false从shouldAutorotate(),订阅UIDeviceOrientationDidChangeNotification,并试图分开手动处理对于每个视图旋转事件.
如果您不需要更改任何UIViews的位置,那么效果很好,否则很难弄清楚它应该在哪里结束以及如何在那里找到它
在主UIWindow下放置一个非旋转UIWindow,并将主UIWindow背景颜色设置为clear.
如果它只是一个项目,那么效果很好,但我不想管理一堆UIWindows
反向旋转即旋转UIView的方向与旋转方向相反.不可靠,看起来很奇怪,它也是眩晕诱发
覆盖viewWillTransitionToSize方法中的动画. 失败
还有很多其他很难在这里列出的东西,但它们都失败了.
可以这样做吗?如果是这样,怎么样?
我支持iOS8 +
更新 这是@ Casey的例子中视图应该如何布局/定位:
ios ×3
iphone ×3
objective-c ×2
orientation ×2
swift ×2
animation ×1
cocoa-touch ×1
ipad ×1
uiview ×1
xcode ×1