gpt4 book ai didi

ios - 动画约束更改 layoutIfNeeded 慢

转载 作者:行者123 更新时间:2023-11-28 19:12:52 26 4
gpt4 key购买 nike

我正在尝试使用自动版式在屏幕上和屏幕外为我的 ADBannerView 制作动画。预自动布局(设置框架和动画)一切正常。现在我有以下代码,它在 viewDidLoad 上运行以确保广告横幅是否离开屏幕。

[UIView animateWithDuration:kADAnimationDuration
animations:^{
_addBannerDistanceFromBottomConstraint.constant = 32;
[self.view layoutIfNeeded];
}];

此代码有效,但速度较慢layoutIfNeeded 需要很长时间(相对)并导致性能不佳。删除该行会使一切变得又好又快,但动画不起作用。

问题是……为什么这么慢/我该如何加快速度?

编辑:我的 UI 相当重要,我认为布局所有内容可能是原因,所以我尝试创建一个简单的 UIView 并将我的横幅作为subview,然后我只需要在该 subview 上调用 layoutIfNeeded,其中包含 1 个项目。但是性能没有变化。

最佳答案

我使用 ADBannerView 创建了一个应用程序,仅此而已。存在同样的问题。我作为错误提交给 Apple,结果出现“重复”,所以我想这是一个已知问题。

作为一种变通方法,我从屏幕上的广告横幅开始,只有在我获得有效广告时才在屏幕上移动。虽然在 Storyboard 中使用会稍微烦人一些,但用户不会注意到其中的差异,并且可以防止速度变慢。

编辑:我一直在研究自动布局,但我得出了一个不幸的结论,我似乎与 Matt Neuburg 分享了这一点。在位中,他写了标题为“auto layout slow on iOS”的文章,他说:

It's a pity, but auto layout is slow on iOS.

它几乎总结了我在将我的一个应用程序转换为自动布局时遇到的几个问题。性能根本不存在。 Matt 在他的帖子中给出的示例中,自动布局完成相同任务所需的时间要长 5 倍。

目前,我想我会避免使用自动布局来处理任何复杂到足以让自动布局有用的东西。

编辑:iOS 8 处于测试阶段,约束速度明显加快。在使用很多(50+)时仍然存在,尤其是在旧设备上,但从到目前为止的测试来看,我得到的以前 2 秒的延迟已经减少到大约 0.4 秒。通过此更改,约束可能已经加速到足以适用于一些约束繁重的 View 工作。

关于ios - 动画约束更改 layoutIfNeeded 慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14096249/

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