gpt4 book ai didi

ios - 如何在 Swift 中调用 animateAlongsideTransition?

转载 作者:搜寻专家 更新时间:2023-10-30 22:31:41 25 4
gpt4 key购买 nike

为了在 Swift 中调用过渡协调器的 animateAlongSideTransition,我尝试了很多组合。我觉得我错过了一些非常愚蠢的东西。

如果我想调用它(来自 Swift 文档):

func animateAlongsideTransition(_ animation: ((UIViewControllerTransitionCoordinatorContext!) -> Void)!,
completion completion: ((UIViewControllerTransitionCoordinatorContext!) -> Void)!) -> Bool

我该怎么做?我只想在动画 block 中传递一些东西,而在完成 block 中不传递任何东西。

最佳答案

这绝对是你想要做的:

coordinator.animateAlongsideTransition({ context in
// do whatever with your context
context.viewControllerForKey(UITransitionContextFromViewControllerKey)
}, completion: nil)

如果你使用像$0这样的变量作为第一个隐式参数,你也可以省略参数

coordinator.animateAlongsideTransition({
$0.viewControllerForKey(UITransitionContextFromViewControllerKey)
}, completion: nil)

in 语法一开始会让人吃惊,但你只需学习一次 :)

  • 大括号定义函数内部的 block
  • 您使用 in 将参数与 block 体分开
  • 但正如我上面所说,您可以使用 $0$1$2 等来省略参数...

似乎有更冗长的语法,但它绝对不符合 Swift 精神(我也懒得把它贴在那里)

希望它能帮助(而且我不会忘记任何事情...)

编辑:

另一个专业提示是,当 block 是唯一参数时,您甚至可以省略括号
(下一个不行,不过是图思路)

coordinator.animateAlongsideTransition{
$0.viewControllerForKey(UITransitionContextFromViewControllerKey)
}

关于ios - 如何在 Swift 中调用 animateAlongsideTransition?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24461121/

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