1

我正在尝试使用 UIView animateWithDuration 将标签从 A 点移动到 B 点,如下所示

    [UIView animateWithDuration:3 delay:0 options:UIViewAnimationTransitionNone animations:^(void){
        label.alpha = 1;
        label.center = CGPointMake(label.center.x , label.center.y +740);

        }completion:^(BOOL Finished){ 
         label.alpha = 0;
        label.center = CGPointMake(label.center.x , label.center.y - 740);]

一旦标签即将达到 740,它就会减速。是否可以匀速运动到 B 点而不是减速?

4

3 回答 3

4

用这个:

[UIView animateWithDuration:3 delay:0 options:UIViewAnimationTransitionNone | UIViewAnimationOptionCurveLinear animations:^(void){ 
...
于 2012-10-14T06:28:11.173 回答
1

只需更改动画选项以UIViewAnimationOptionCurveLinear使动画使用删除所有加速和减速或UIViewAnimationOptionCurveEaseIn保持慢启动而不在结束时减速。

您所看到的是预期的,甚至是记录在案的(见下文)。默认情况下,动画开始和结束都很慢:

讨论

此方法使用 . 立即执行指定的动画UIViewAnimationOptionCurveEaseInOut

于 2012-10-14T06:26:27.943 回答
1

包括UIViewAnimationCurveLinear在选项中,而不是UIViewAnimationTransitionNone. UIViewAnimationTransitionNone不适用于这种动画。它适用于视图控制器转换。

于 2012-10-14T06:27:48.693 回答