UIButton移动动画

Posted

技术标签:

【中文标题】UIButton移动动画【英文标题】:UIButton movement animtion 【发布时间】:2013-03-27 15:51:13 【问题描述】:

我想知道是否可以创建一个 UIButton 动画,使按钮在屏幕中快速滑动,到达中心时减速,然后加速并从另一侧退出屏幕。该按钮不必按下,所以我使用:

userInteractionEnabled = NO;

这是我试图做的:

UIButton* buttonNumberCountTutorial = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[buttonNumberCountTutorial setTitle:@"2" forState:UIControlStateNormal];
[buttonNumberCountTutorial setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[buttonNumberCountTutorial.titleLabel setFont:[UIFont fontWithName:@"Zapfino" size:40]];
buttonNumberCountTutorial.frame = CGRectMake(-400, 430, 400, 400);
[buttonNumberCountTutorial setBackgroundImage:[UIImage imageNamed:@"socialize-navbar-bg.png"]forState:UIControlStateNormal];
[baseView addSubview:buttonNumberCountTutorial];
[UIView animateWithDuration:1.9f
                 animations:^

        buttonNumberCountTutorial.frame = CGRectMake(20, 430, 200, 200);

        
              completion:^(BOOL finished)

                  [buttonNumberCountTutorial removeFromSuperview];
    ];

【问题讨论】:

我同意@Mert(“编译”他的意思是完成)。您可以在出现部分使用UIViewAnimationOptionCurveEaseOut,在消失部分使用UIViewAnimationOptionCurveEaseIn(在原始完成块中插入的另一个动画中)。 【参考方案1】:

您可以定义动画选项。适合您的有趣选项

UIViewAnimationOptionCurveEaseInOut
UIViewAnimationOptionCurveEaseIn 
UIViewAnimationOptionCurveEaseOut
UIViewAnimationOptionCurveLinear

您需要使用 UIView 的以下 Class 方法才能使用这些选项

+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion

当然,您可以通过在完成块中启动新动画来制作嵌套动画。

【讨论】:

以上是关于UIButton移动动画的主要内容,如果未能解决你的问题,请参考以下文章

动画移动 UIButton 在移动时不响应触摸/点击

复位旋转动画 uibutton

使用 CABasicAnimation 移动时无法使用 UIButton

UIButton在动画期间没有交互

UIButton 动作

iPhone中的UIButton点击动画