iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 同时动画多个UIViews大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有三个UIButton对象可视化地堆叠在一起.当用户点击按钮时,下面的按钮应向下移动一定距离.我正在使用以下动画块:

// Assuming button 1 was clicked...
[UIView animateWithDuration:0.25f
                      delay:0.0f
                    options:UIViewAnimationOptionCurveLinear
                 animations:^(void) {
                   self.button2.frame = CGRectOffset(self.button2.frame,0.0f,20.0f);
                   self.button3.frame = CGRectOffset(self.button3.frame,20.0f);
                 }
                 completion:^(BOOL finished) { NSLog(@"Finished"); }];

如果我增加动画持续时间,例如从0.25到0.75,按钮不会保持在一起,但它们会以不同的时间间隔开始移动.我已经尝试过使用Core Animation方法,通过对动画和其他内容进行分组,但还没有找到任何解决方案.

你有什么想法?现在我将持续时间保持在0.25,直到我拿出一些东西.

解决方法

一种解决方案是将button2和button3都设置为另一个UIView中的子视图,并分别为每个按钮设置动画而不是每个按钮.这是否是一种好的方法取决于您使用堆叠按钮尝试完成的任务.

编辑:

由于我的经验是块内的动画是同步的,我实现了如下所示的代码.我为动画持续时间(0.15,0.25,0.75,1.25)尝试了很多值,而button2和button3正在同步移动(因为button2位于button3的顶部,我实际上根本看不到button3,直到我点击button2,导致button3从按钮3下方移动.

- (IBAction)button1Tapped:(id)sender {
    NSLog(@"button1Tapped...");

    [UIView animateWithDuration:0.75f
                          delay:0.0f
                        options:UIViewAnimationOptionCurveEaSEOut
                     animations:^(void) {
                         self.button2.frame = CGRectOffset(self.button2.frame,20.0f);
                         self.button3.frame = CGRectOffset(self.button3.frame,20.0f);
                     }
                     completion:^(BOOL finished) { NSLog(@"Finished"); }];
}

- (IBAction)button2Tapped:(id)sender {
    NSLog(@"button2Tapped...");

    [UIView animateWithDuration:0.75f
                          delay:0.0f
                        options:UIViewAnimationOptionCurveEaSEOut
                     animations:^(void) {
                         self.button3.frame = CGRectOffset(self.button3.frame,20.0f);
                     }
                     completion:^(BOOL finished) { NSLog(@"Finished"); }];
}

- (IBAction)button3Tapped:(id)sender {
    NSLog(@"button3Tapped...");
}

大佬总结

以上是大佬教程为你收集整理的ios – 同时动画多个UIViews全部内容,希望文章能够帮你解决ios – 同时动画多个UIViews所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: