Swift - 在视图之间切换时保持相同的背景

时间:2018-01-12 01:58:59

标签: ios iphone swift uiviewcontroller storyboard

为了让它尽可能简单,我目前有两个故事板:"简介" (包含两个按钮:注册并登录)并注册一个。

我想两者都有相同的背景,所以我假设在两个故事板中放置一个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会对我的情况有所帮助......(或者可能?)

0 个答案:

没有答案