在一个 uiviewimage 的动画完成后,触发一个事件来为主动画制作动画。ViewDidLoad() 具有主要的动画逻辑。加载后,屏幕上会出现一个动画圈。
屏幕上有一个按钮,它会触发另一个动画,持续时间仅为 6 秒。
我想要一种逻辑和方法,可以运行之前的动画。
在我看来,可以通过回调或线程来完成吗?
请给出您的建议作为答案,如果您建议回调方法,一段代码将是完美的。
在一个 uiviewimage 的动画完成后,触发一个事件来为主动画制作动画。ViewDidLoad() 具有主要的动画逻辑。加载后,屏幕上会出现一个动画圈。
屏幕上有一个按钮,它会触发另一个动画,持续时间仅为 6 秒。
我想要一种逻辑和方法,可以运行之前的动画。
在我看来,可以通过回调或线程来完成吗?
请给出您的建议作为答案,如果您建议回调方法,一段代码将是完美的。
这是 Omar Johari 的示例,转换为 MonoTouch:
UIView.Animate(0.6, 0d, UIViewAnimationOptions.CurveEaseOut,
() => {
// Animations here
},
() => {
// After animation completes
});
[UIView animateWithDuration:0.6f
delay:0.0f
options:UIViewAnimationOptionCurveEaseOut
animations:^{
// Do your animations here.
}
completion:^(BOOL finished){
if (finished) {
// Do your method here after your animation.
}
}];
如果你使用块你可以允许在动画完成后调用你想要的任何东西。
尝试做这样的事情。
为您的主屏幕动画制作一个功能
-(void)mainScreenAnimation
{
// do ur code here
}
现在,当使用按钮触发动画时,将这样的内容添加到按钮事件中
-(IBAction)btnPressed:(id)sender
{
// try implementing a timer which starts after 6seconds and the selector of the timer should be @selector(mainAnimationScreen)
timer= [NSTimer scheduledTimerWithTimeInterval:6.0 target:self selector:@selector(mainAnimationScreen) userInfo:nil repeats:NO];
// if u want to repeat the animation then use this
timer= [NSTimer scheduledTimerWithTimeInterval:6.0 target:self selector:@selector(mainAnimationScreen) userInfo:nil repeats:YES];
}