界面转换后的效果如何?

时间:2018-03-26 16:16:47

标签: swift uiviewcontroller uicontainerview viewwilltransitiontosize

在我的项目中有VC和其他VC作为容器。 我尝试使用viewWillTransitionToSize方法,但在转换后,子VC(在容器中)的接口无法通过触摸使用。

我不知道这是什么影响或问题。 有谁知道我的情况?

感谢所有答案!

1 个答案:

答案 0 :(得分:0)

我发现解决了这个问题。 如果您遇到同样的问题,请检查viewWillTransitionToSize覆盖功能。所有具有大小,视图,颜色,位置的操作都应该在过渡时完成。 像这样:

Swift 4.1

...
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)
    coordinator.animate(alongsideTransition: { (_) in
        // there will be your handler for UI elements.
    }, completion: { (_) in 

    })
}
...

在我的项目中,我有UIPageVC,它存在页面(VC)。除了页面(VC)之外,我还处理每个页面的PageVC func转换,这是转换时刻的视图。一切正常。 这是我的代码示例:

MainPageViewController 类:

...
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)
    coordinator.animate(alongsideTransition: { (_) in
        // handlers for my PageVC

        for vc in self.orderedViewControllers {
            if vc != self.orderedViewControllers[self.currentPageIndex{
                vc.viewWillTransition(to: size, with: coordinator)
            }
        }

    }) { (_) in
        print("\nDONE: PAGEVC Rotated.")
    }
}

也许这段代码将来会帮助任何人。