为了让它尽可能简单,我目前有两个故事板:"简介" (包含两个按钮:注册并登录)并注册一个。
我想两者都有相同的背景,所以我假设在两个故事板中放置一个ImageView是个好主意。然后,我使用以下代码在其上应用了一个过滤器:
func setAuthenticationBackgroundFilter(background: UIImageView) {
let gradient = CAGradientLayer()
gradient.frame = background.bounds
gradient.colors = [UIColor.init(hex: "#8E1B1B").cgColor, UIColor.init(hex: "#519BF9").cgColor]
gradient.opacity = 0.75
background.layer.insertSublayer(gradient, at: 0)
}
它完美无缺,但当我切换这样的视图时:
let storyboard = UIStoryboard(name: StoryBoardName.signUp, bundle: nil)
guard let signUpViewController = storyboard.instantiateInitialViewController() as? SignUpController else {
return
}
self.show(signUpViewController, sender: true)
在过渡期间,屏幕的一小部分没有过滤器,给人的印象是屏幕重置并用下一个背景取代之前的背景(基本相同)。
TL; DR:我想用动画从一个视图切换到另一个视图,但我也希望保持相同的背景(+过滤器)并更改视图的内容而不需要这个"背景复位"印象(只有少数观点,而不是全部)。
请问我能帮忙解决这个问题吗?
谢谢!
编辑:我已经读过这个 - How can I add the same background image to all views in my ios app using swift? ,但这不是同一个案例。我不是试图将相同的背景添加到应用程序的所有视图,只有少数几个。因此,我不认为在AppDelegate中更改UIWindow会对我的情况有所帮助......(或者可能?)