gpt4 book ai didi

swift - 如何让UIViewController从下往上滑动而不褪色之前的 View ?

转载 作者:行者123 更新时间:2023-11-30 10:50:18 27 4
gpt4 key购买 nike

我正在使用 Swift 创建一个新应用程序,并希望使用 UINavigationController 将 UIViewController 从下到上滑动,但我当前的解决方案会淡出以前的 View 。

这个烦人的淡入淡出看起来像这样:https://i.imgur.com/wAcO9IS.jpg

我正在使用 Swift 4.2 和 XCode 10。我正在运行 iOS 12.0 的 iPhone 7 Plus 上测试我的应用程序。

目前我正在使用此解决方案将 View 从下到上推送:

let transition = CATransition()
transition.duration = 0.3
transition.timingFunction = CAMediaTimingFunction(name:
CAMediaTimingFunctionName.easeInEaseOut)
transition.type = CATransitionType.moveIn
transition.subtype = CATransitionSubtype.fromTop
navigationController?.view.layer.add(transition, forKey: nil)
navigationController?.pushViewController(LoginScreen(), animated: false)

这个解决方案用于从上到下推送:

// same code
transition.type = CATransitionType.reveal
transition.subtype = CATransitionSubtype.fromBottom
// same code
navigationController?.popToRootViewController(animated: false)

我想将 UIViewController 从下到上滑动,反之亦然,而不会使以前的 UIViewController 褪色,但现在我的解决方案会淡出以前的 UIViewController。

最佳答案

淡入淡出效果是放置动画的图层。你把自己搞得太复杂了。只需实例化 View Controller 并将其呈现在现有 View Controller 之上即可。

let loginScreenVC = storyboard?.instantiateViewController(withIdentifier: "LoginScreen") as! LoginScreen
loginScreenVC.modalPresentationStyle = .overCurrentContext
self.present(loginScreenVC, animated: true)
//might be as well:
//navigationController?.present(loginScreenVC, animated: true)

更新:

如果你想关闭它,只需调用:

self.dismiss(animated: true, completion: nil)

关于swift - 如何让UIViewController从下往上滑动而不褪色之前的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54736941/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com