相关疑难解决方法(0)

子视图控制器旋转而父视图控制器不旋转

我想做什么:

由父视图控制器管理的父视图不应该旋转.

由子视图控制器管理的子视图应该旋转到所有方向.


在此输入图像描述

在此输入图像描述


我试过的:

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

24
推荐指数
2
解决办法
5803
查看次数

防止AVCaptureVideoPreviewLayer旋转,但允许UI图层按方向旋转

我有两个视图控制器.一个是根VC,包含UI界面,如记录按钮.在此视图控制器上,我还显示索引0处的另一个VC的视图.此视图包含AVCaptureVideoPreviewLayer.

我希望我的摄像机模仿苹果摄像机应用程序,界面布局随旋转调整,但视频预览层不会.您可以看到视频应用程序中的录制计时器(UILabel)如何消失,并根据方向重新出现在顶部.

知道怎么做吗?我发现了一个建议,建议将预览添加到app delegate的窗口,因为它不符合导航控制器的旋转,但它对我不起作用.

谢谢!

avfoundation ios avcapturesession avcapturedevice

5
推荐指数
2
解决办法
4820
查看次数