通常在我的应用程序中,我需要使用背景图像或带有渐变的自定义 View ,如下所示:
现在我只是定义一个 BackgroundView
类来呈现自己,但是我需要该项目,然后我将每个 View Controller 的 Root View 作为该类的一个实例。这是一个不错的解决方案,但在某些用例中它还不够。例如,如果我想让 Controller 像这样淡出:
UIView.animate(withDuration: self.transitionDurationOut, animations: {
self.view.alpha = 0
}) { (Finished) in
}
屏幕将逐渐变黑(窗口的默认颜色)。我宁愿这样做,这样我就可以淡出 Controller 的 View 以显示背景。我可以使用容器 View 来完成此操作,但我希望尽可能多地删除样板代码。是否有某种方法可以为窗口提供某种 Root View ,如果其 View 变得透明,该 View 将出现在事件 Controller 的后面?
最佳答案
我认为通过将子类设置为 View Controller Root View ,您有一个很好的解决方案。向 View Controller Root View 添加一个清晰的 subview 并在该 subview 而不是 Root View 上执行淡入淡出怎么样。
例子:
self.view = BackGroundView() // Gradient background
let fadeView = UIView()
fadeView.backgroundColor = UIColor.clearColor()
/* Add content to fadeView here */
self.view.addSubview(fadeView)
UIView.animate(withDuration: self.transitionDurationOut, animations: {
self.view.fadeView = 0
}) { (Finished) in
}
关于ios - 跨多个 View Controller 使用共享背景 View 的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39478338/