gpt4 book ai didi

iphone - 在第一次结束动画后触发其他动画(Objective-C)

转载 作者:搜寻专家 更新时间:2023-10-30 19:57:17 24 4
gpt4 key购买 nike

我有一个简单的动画,它只是修改按钮的位置:

[UIView beginAnimation:nil context:nil];
[UIView setAnimationsDuration:3.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
mybutton.frame = CGREctMake(20, 233, 280, 46);
[UIView commitAnimations];

我想在完成此动画后执行一些其他动画,该怎么做?

最佳答案

你可以看看setAnimationBeginsFromCurrentState: .所有动画都在自己的线程中运行,因此 [UIView commitAnimations] 是一个非阻塞调用。因此,如果您在提交第一个动画后立即开始另一个动画,在适本地设置它是否从当前状态开始之后,我想您会得到您想要的行为。即:

[UIView beginAnimation:nil context:nil];
// set up the first animation
[UIView commitAnimations];

[UIView beginAnimation:nil context:nil];
[UIView setAnimationBeginsFromCurrentState:NO];
// set up the second animation
[UIView commitAnimations];

或者,您可以通过执行以下操作来提供回调

[UIView beginAnimation:nil context:nil];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)
// set up the first animation
[UIView commitAnimations];

//...

- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
// set up the second animation here
}

关于iphone - 在第一次结束动画后触发其他动画(Objective-C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2710939/

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