iOS:默认的 segue 动画违反并破坏了我的其他动画时间

标签 ios iphone animation uiview segue

我在两个具有默认类型 Show 的 View Controller 之间使用默认 segue。它有默认的幻灯片动画,我以编程方式执行它。在第二个 View Controller 上我有一个动画。 当我第一次打开第二个 View Controller 时,所有动画都正常 - segue 动画和与第二个 View Controller 相关的动画按预期工作正常。

当我点击后退按钮并再次打开第二个 View Controller 时,没有幻灯片动画(我的意思是根本没有动画),第二个 View Controller 就出现了。我在第二个 View Controller 上的动画工作正常,但时间错误。我将解释:我有两个不同时间的 UIView 动画 block ,但在这个故障之后,两个以相同持续时间和动画执行的动画 block 变得非常沉闷。我正在考虑录制视频来演示问题。

我不明白问题的根源是什么。也许有人遇到相同的行为并知道原因?

我的问题是:如何调试此类行为?我还没有显示任何代码行,因为我不确定问题可能隐藏在哪里。

最佳答案

我发现我的代码有问题。这是一个 UIImageView 属性,它的图像被设置在后台队列中。我忘了在主队列 block 中设置它的属性。

dispatch_async(dispatch_get_main_queue(), {
...
})

愚蠢的错误会毁掉动画!我决定留下这个问题和答案,以防有人遇到同样的行为。

编辑

我发现我使用 MKMapSnapshotter 来创建 map ,我将其放入调度异步 block 中,因为我不想阻塞主队列来生成 map 图像。现在,我知道我不需要这样做,因为:方法异步执行请求 并且有在主队列中调用的完成处理程序。我删除了所有与调度相关的代码,现在一切正常。

关于iOS:默认的 segue 动画违反并破坏了我的其他动画时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38360981/

相关文章:

c# - OpenTK 文字动画

javascript - 通过单击按钮停止加载动画循环并查找目标(不透明度 1)div 的颜色类别

javascript - 如何从 'SetInterval'切换到 'request animation frame'

objective-c - 如何确定分页以确保关键字出现在页面的中心

ios - 动画容器 View Controller

iphone - UIImageView 延迟或恢复到不同的帧

ios - 如何在 iphone 5s 和 iphone X 的 Storyboard 中为 uibutton 设置不同的大小?

iphone - MPMoviePlayerController 仍然泄漏

android - 如何将图像添加到推送通知?

iphone - 有没有办法在 Xcode 4.1 中使用 LLVM 3?