gpt4 book ai didi

ios - didSelect 执行不等待 didDeSelect 动画结束

转载 作者:搜寻专家 更新时间:2023-11-01 07:17:10 25 4
gpt4 key购买 nike

我有一张带有多个 map 图钉的 map 。单击每个图钉时,将显示一个 View ,其中包含特定于所选图钉的信息。因此,让我们说出有关图钉的位置信息。

想象一下以下用例:

1- 选择图钉后,使用有关所选图钉的信息以动画方式显示 View 。

2- 选择不同的图钉时,动画隐藏在步骤 1 中选择的 View 。

3- 第 2 步中的动画完成后,使用有关新选择的图钉的特定信息为 View 的显示设置动画。

我已经实现了以下 mapKit 函数

func mapView(_ mapView: MKMapView, didDeselect view: MKAnnotationView) {

UIView.animate(withDuration: 0.5, animations: {

// Animate views

})

}

func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView){
// did select code

UIView.animate(withDuration: 0.5, animations: {

// Animate views

})
}

一旦我尝试执行步骤 2 的操作,就会执行 didDeselct 函数。然后执行didSelect函数中的逻辑。这行得通,但有一个问题。在执行didSelect 函数之前,didDeselect 中的动画执行没有完成。

如何在 didDeselct 中的动画完成之前阻止 didSelect 的执行。

请记住,我仍然需要 didSelect 函数,因此我无法将此函数的逻辑放在动画代码中。

最佳答案

我建议你写一个函数来显示和隐藏相关的 View 。将需要此功能来处理这两个过程。您还可以创建一个 Bool 变量来了解是否有任何动画正在进行。如果是,则 make 等待它完成并在完成时再次触发该功能。您可以使用变量的getset block 或观察者模式。我希望这会有所帮助。

关于ios - didSelect 执行不等待 didDeSelect 动画结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41532498/

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