当前位置: 首页 > 知识库问答 >
问题:

UiViewAnimation不调用setAnimationddStopSseltor

幸弘光
2023-03-14

我创建了这个动画,通过停止动画进入

[UIView setAnimationDidStopSelector:@selector (TermineAnimazioneGoPointAssignedWithDelay)] ;

当SetAnimationDidStop的动画部分未被调用时。。。你能告诉我为什么,我哪里做错了吗?

这是一路动画:

-(void)setViewStatusGoPointassigned {
    ViewgoPointAssignMessage = [[UIView alloc] initWithFrame:CGRectMake(115, 150, 100, 100) ];
    ViewgoPointAssignMessage.backgroundColor = [UIColor colorWithRed:(77/255.0) green:(108/255.0) blue:(143/255.0) alpha:(1)];
    [ViewgoPointAssignMessage.layer setCornerRadius:10.0f];
    [ViewgoPointAssignMessage.layer setMasksToBounds:YES];

    [UIView animateWithDuration:0.2 animations:^{

        ViewgoPointAssignMessage.transform = CGAffineTransformMakeScale(1.05, 1.05);
        ViewgoPointAssignMessage.alpha = 0.8; }
                     completion:^(BOOL finished){

                         [UIView animateWithDuration:2/15.0 animations:^{
                             ViewgoPointAssignMessage.transform = CGAffineTransformMakeScale(0.9, 0.9);
                             ViewgoPointAssignMessage.alpha = 0.9; }
                                          completion:^(BOOL finished) {

                                              [UIView animateWithDuration:1/7.5 animations:^{
                                                  ViewgoPointAssignMessage.transform = CGAffineTransformIdentity;
                                                  ViewgoPointAssignMessage.alpha = 1.0; } ];


                                          } ];
                     } ];

    [self.view addSubview:ViewgoPointAssignMessage];
    [UIView setAnimationDidStopSelector:@selector(TermineAnimazioneGoPointAssignedWithDelay)];

}

-(void)TermineAnimazioneGoPointAssignedWithDelay {
    [self performSelector:@selector(EliminazioneViewAfterDelay) withObject:self afterDelay:0.01];
}
-(void)EliminazioneViewAfterDelay {
    CGRect endREct;
    endREct = CGRectMake(350 , 0 , 330, 90);
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.005];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector(EliminaAnimazione)];
     ViewgoPointAssignMessage.frame = endREct;
    [UIView commitAnimations];

}
- (void)EliminaAnimazione {
    [ViewgoPointAssignMessage removeFromSuperview];

}

共有1个答案

祁和通
2023-03-14

首先,回答你的问题。你可以试试

[UIView animateWithDuration:(NSTimeInterval)duration animations:^(void)animations completion:^(BOOL finished)completion]

并在完成时调用[autoTermineAnimazioneGoPointAssignedRevDelay]

其次,[UIView setAnimationDidStopSelector:@selector(TermineAnimazioneGoPointAssignedWithDelay)]不起作用,因为根据引用,必须在调用beginAnimations:context:和commitAnimations方法之间调用setAnimationDidStopSelector。由于您的代码不符合此规则,因此该函数也不起作用。

希望它能解释!祝你好运!

 类似资料:
  • 我有一个简单的UILabel,当你长按它时,它就会开始旋转。我使用以下代码成功地实现了这一点: 用户只需双击标签,就可以在任何时候停止这个动画。下面是代码: 问题是,下次你长按标签时,它没有反应。旋转动画不会再次启动。你必须再次点击它才能让它再次运行。 所以模式是: 1)长按-动画开始 2)双击-动画停止 3)长按-什么都没有发生 4)再次长按-动画再次开始 我该怎么解决这个问题?

  • 我有一个iOS应用程序,它运行几个不同的块,在屏幕上为几个不同的对象设置动画。这一切都是可行的,但我如何停止其中一个动画块而不停止其余的? 我尝试过使用以下方法: 但它什么都没做,动画还在继续。 然后,我尝试使用一个简单的值,并在设置为"NO"后,让动画从方法返回,但这也不起作用。 以下是我试图停止的动画: 谢谢你,丹。

  • 我得到了一个,它应该从顶部滑动到视图中,然后当它停止时,应该会产生一个反弹动画。 我动画的y.position改变像这样: 不要担心设置原点。y坐标到-136。我的图像视图位于屏幕外-460,因为它的高度是450。但是当将imageview滑入屏幕时,我不想显示整个图像,这就是为什么它没有设置为y位置的动画 有没有人给我一个提示或想法,告诉我如何在设置帧后让imageview反弹?

  • 问题内容: 我目前正在将GCM通知实施到我的应用中。 我遇到的问题是实现中的方法未被调用。我从GCM服务器收到的数据很好,因为它会自动生成一个通知(我希望使用该方法将其替换为我自己的通知),但是之后,我的所有日​​志调用都不会打印在日志中。 从服务器发送到GCM服务器的JSON AndroidManifest.xml(仅适用于GCM部分) GcmListenerService(只是一个快速打印,以

  • 问题内容: 我有一个自定义适配器,可显示订单列表中的每一行。 从Web服务查询新的订单列表之后,我想更新ListView的内容,因此我让Activity在调用notifyDataSetChanged()之前进行更新。 但是,从不调用OrderRowAdapter的getView()方法。ListView永远不会更新。 问题答案: 原来我不被叫的问题是因为它不可见。我的布局XML已经上与它的高度。因

  • 大家好,我在下面的链接中介绍了使用Python for Alexa的事实技能教程:https://github.com/alexa/skill-sample-python-fact 我的问题是Alexa只启动“启动请求” 但它不执行"GetNewFactIntent"的"IntentRequest" 正因为如此,只有调用名称在调用函数时有效,并且来自“GetNewFactIntent”的示例语句不