1

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

我不知道那是什么效果或问题。有人知道我的情况吗?

感谢所有答案!

4

1 回答 1

0

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

斯威夫特 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.")
    }
}

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

于 2018-04-03T09:45:15.320 回答