gpt4 book ai didi

ios - viewDidAppear 上的动画 UIImageView 和 UITableView

转载 作者:行者123 更新时间:2023-11-29 13:22:54 25 4
gpt4 key购买 nike

我有一个 UIViewController,我的 Logo 居中,UITableView 的 alpha 为 0。

viewDidAppear: 我有这个:

[UIView animateWithDuration:0.6 delay:0.0 options:UIViewAnimationCurveEaseInOut animations:^{
[self.logo setFrame:CGRectMake(0.0f, self.view.frame.size.height - 194.0f, 320.0f, 194.0f)];
} completion:^(BOOL finished) {
[self.table setFrame:CGRectMake(0.0f, 0.0f, 320.0f, self.view.frame.size.height - 194.0f)];

[UIView animateWithDuration:0.4 delay:0.0 options:UIViewAnimationCurveEaseInOut animations:^{
[self.table setAlpha:1.0];
} completion:^(BOOL finished) {
return;
}];

return;
}];

好的,动画就是我想要的。

但是当我调用 presentModalViewController: 显示下一个 View 时,UIImageView 回到屏幕中心,UITableView 回到之前的高度。

如何在完成动画后保持相同的大小和位置,甚至改变 View ?

谢谢。

最佳答案

我假设您在 viewDidLoad 中设置了原始帧,这很好,除非模态清除了您的系统内存。 View 会尽可能长时间地缓存。因此,如果您的模式使用了足够的内存来重置它,viewDidLoad 将再次调用以重置您的 View 。

处理此问题的一种快速简便的方法是在 dismissViewController:animated: 方法中设置您想要的值(如果您正在使用它),或者为模态设置一个委托(delegate)方法。

如果您没有其中任何一个,则需要以某种方式检查这是否是第一次加载。但这不是处理它的干净方法。如果您展示更多代码,我们可能会找到更好的解决方案。

关于ios - viewDidAppear 上的动画 UIImageView 和 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13935322/

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