gpt4 book ai didi

iphone - 带有 subview 的 UIView beginAnimations

转载 作者:行者123 更新时间:2023-12-03 18:32:30 24 4
gpt4 key购买 nike

我有一个漂亮且简单的 View “缩放”动画,它以一个点开始,然后动画到全屏尺寸:

        [UIView beginAnimations:nil context:NULL];        [UIView setAnimationBeginsFromCurrentState:YES];        [UIView setAnimationDuration:1.0];        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];        myView.frame = CGRectMake(0,0,320,480);        myView.transform = CGAffineTransformIdentity;          [UIView commitAnimations];

到目前为止一切顺利:-)

问题是,当我向 myView 添加 subview 时,令我惊讶的是,它们没有遵循其父 View 的动画方案!?!?

顺便说一句。目前, subview 照常添加到 MyView 的 initWithFrame 中。我尝试将它们的转换属性设置为 CGAffineTransformIdentity 但没有帮助。

那么,需要做什么才能允许 myView 的 subview 与其 super View 一起以良好的“缩放”方式进行动画处理?

提前致谢!
/约翰

最佳答案

我刚刚遇到了同样的问题,解决方案非常简单。虽然修改帧大小仅影响当前 View ,而不影响 subview (正如您所注意到的),但变换属性也适用于 subview 。

我正在尝试做与您正在做的相反的事情(有一个 subview ,在显示时似乎“下降”到现有 View 的顶部,而不是从中心缩放)。这段代码对我有用:

self.transform = CGAffineTransformMakeScale(2,2);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.25];
self.transform = CGAffineTransformMakeScale(1,1);
self.alpha = 1.0;
[UIView commitAnimations];

尝试在开始动画之前将 self.transform 设置为 CGAffineTransformMakeScale(0,0),并在提交之前将其设置回 (1,1)。根本不要修改框架 - 将其保留为动画完成后您希望 View 具有的大小。

关于iphone - 带有 subview 的 UIView beginAnimations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/868121/

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