0

我在为视图的移动设置动画时遇到问题。它可以工作,但如果我开始为运动设置动画,它就会卡住。没有动画,它可以流畅地工作。但是,如果我设置动画,它就会开始卡住。这是我的代码:

UIView.BeginAnimations("Slide");
this.detailController.View.Layer.Position = new PointF(50,50);
UIView.CommitAnimations();   

我已经尝试过:

  • 设置

this.detailController.View.Center = new PointF(50,50);

  • 使用 CoreAnimations

有没有可能使动画更流畅?

提前致谢。

4

2 回答 2

1

默认动画持续时间为 0.2 秒,在您的情况下可能太快而无法看到。

如果您想要流畅的动画,请使用持续时间和缓动功能。只需确保在动画块的开头(就在 之后BeginAnimation)设置这些参数,否则它们将不会被考虑在内。

UIView.BeginAnimations("Slide");

UIView.SetAnimationDuration (2);
UIView.SetAnimationCurve (UIViewAnimationCurve.EaseInOut);

detailController.View.Layer.Position = new PointF(50,50);
UIView.CommitAnimations();

有关更多信息,请阅读http://docs.xamarin.com/recipes/ios/animation/coreanimation/animate_a_uiview_using_uikit

于 2013-07-01T09:37:53.483 回答
1

我习惯于像这样执行我的动画:

[UIView animateWithDuration:durationTime //in seconds
                     animations:^{
                         //what I want to animate (setCenter:, setFrame:,...)
                     }
                     completion:^(BOOL finished){
                         //only if you want to do things after the animation
                     }
];

希望对你有帮助

于 2013-07-01T09:41:52.907 回答