【问题标题】:IOS CABasicAnimation save view to latest position when animation endsIOS CABasicAnimation 动画结束时将视图保存到最新位置
【发布时间】:2015-08-11 23:59:53
【问题描述】:

如何保存动画视图的最新位置?

这是我的代码,通常我的目标是在 z 轴上将视图旋转大约 60 度。

    CABasicAnimation rotationAnimation = new CABasicAnimation ();
    rotationAnimation.KeyPath = "transform.rotation.y";
    rotationAnimation.From = new NSNumber (0);
    rotationAnimation.To = new NSNumber (0.7);
    rotationAnimation.Duration = 5;
    rotationAnimation.AutoReverses = false; 
    rotationAnimation.FillMode = "kCAFillModeForwards";
    rotationAnimation.RemovedOnCompletion = false;  
    this.contentViewContainer.Layer.AddAnimation (rotationAnimation, "rotationAnimation");

    this.contentViewContainer.Layer.ContentsGravity = CALayer.GravityResizeAspectFill;
    CATransform3D transform = CATransform3D.Identity;
    nfloat d = (nfloat)(1.0 / 500.0);
    transform.m34 = d;
    this.contentViewContainer.Layer.Transform = transform;

这是它的外观

【问题讨论】:

  • 您的问题不清楚。最新职位是什么意思?您是否希望动画结束时视图保持在原处?你想要 origin 值吗?
  • 正是,当动画结束时
  • @ezCoding 编辑了我的问题。你有什么想法吗?
  • @ezCoding 你是对的,但这个解决方案对我不起作用。如您所见,我的代码包括以下几行:rotationAnimation.FillMode = "kCAFillModeForwards";旋转动画.RemovedOnCompletion = false;那里有什么答案。

标签: ios animation xamarin


【解决方案1】:

看看这个answer

您正在为fillMode 使用String,它的值与此处所需的常量 不同。 所以把你的代码改成:

rotationAnimation.FillMode = CAFillMode.Forwards

【讨论】:

  • 这里是正确的代码行:rotationAnimation.FillMode = CAFillMode.Forwards;
【解决方案2】:

简单设置:


rotationAnimation.AutoReverses = false;  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    相关资源
    最近更新 更多