gpt4 book ai didi

ios - 从左到右的过渡屏幕?

转载 作者:行者123 更新时间:2023-12-01 16:14:17 25 4
gpt4 key购买 nike

我想创建一个segue。我正在使用 swift 。我希望新的 View Controller 从左侧滑入。这意味着之前的 View Controller 将从左向右滑出。我已经尝试过 Push、Replace、Present Modally 和 Present as Popover,但它们都没有进行从左到右的转换。它们要么具有从右到左的过渡,要么从屏幕底部出现新屏幕。如何进行从左到右的过渡?谢谢。

最佳答案

您可以编写一个不会太难的自定义转换,但如果您不想走这条路,这里有一个简单的修复方法。单击转场并取消单击/禁用转场上的动画。然后在 prepareForSegue 中使用它。

  override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let _ = segue.destination as? NextViewController{
let trans = CATransition()
trans.type = kCATransitionMoveIn
trans.subtype = kCATransitionFromLeft
trans.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
trans.duration = 0.35
self.navigationController?.view.layer.add(trans, forKey: nil)
}
}

随意探索 CATransition types 的其他选项.你可以和他们一起玩得很开心。现在我猜你想在下一个 View Controller 中按下后退按钮的反向。您将不得不替换后退按钮并拦截没有动画的后按和弹出,以便您可以添加自己的动画。这就是它的样子。
 override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target: self, action: #selector(backTapped))
}

@objc func backTapped() {
let trans = CATransition()
trans.type = kCATransitionMoveIn
trans.subtype = kCATransitionFromRight
trans.duration = 0.3
self.navigationController?.view.layer.add(trans, forKey: nil)
navigationController?.popViewController(animated: false)
}

同样,另一个选项是使用 UIViewControllerAnimatedTransitioning但是根据您的技能水平和对动画的舒适度,我发现上述方法很容易实现。

关于ios - 从左到右的过渡屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50420919/

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