移动视图动画的位置

时间:2013-07-01 09:20:25

标签: c# ios animation uiview xamarin.ios

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

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

我已经尝试过:

  • 设置
  

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

  • 使用CoreAnimations

有没有可能让这个动画更流畅?

提前致谢。

2 个答案:

答案 0 :(得分:1)

默认动画持续时间为.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

答案 1 :(得分: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
                     }
];

希望它能帮到你