Ios 设置自定义特性值的动画?

Ios 设置自定义特性值的动画?,ios,objective-c,Ios,Objective C,我可以很容易地设置UIView的位置或大小之类的动画。但是如何设置自定义变量(如experiencePoints)的动画,以实现与UIView无关的值的插值 // The variable being animated CGFloat experiencePoints = 0; // Pseudo-code [experiencePoints animateTo:200 duration:2 timingFunction:someTimingFunction]; 有了这段代码,如果我在制作动

我可以很容易地设置UIView的位置或大小之类的动画。但是如何设置自定义变量(如experiencePoints)的动画,以实现与UIView无关的值的插值

// The variable being animated
CGFloat experiencePoints = 0;

// Pseudo-code
[experiencePoints animateTo:200 duration:2 timingFunction:someTimingFunction];
有了这段代码,如果我在制作动画时访问experiencePoints,我会根据动画持续的时间得到一个介于0和200之间的值


附加问题:是否可以使用动画来做我想做的事情?

动画只是随着时间的推移将值从起始位置移动到结束位置。要在一段时间内将浮点值从一个值设置为另一个值,只需运行一个计时器并增量更改它。或者,您可以存储动画的开始和结束时间,并且无论何时访问该值,都可以将其与实际时间进行比较,以得出一个值。

为某个对象设置动画只是将一个值随时间从开始位置移动到结束位置。要在一段时间内将浮点值从一个值设置为另一个值,只需运行一个计时器并增量更改它。或者,您可以存储动画的开始和结束时间,并且无论何时访问该值,都可以将这些时间与实际时间进行比较以得出一个值。

您可以使用带有CADisplayLink的演示层,通过在动画状态上添加观察者,您可以将变量增加到最后一个。观察者将观察动画的当前状态,这将最终为您提供一种获取该变量当前值的方法。

您可以使用带有CADisplayLink的演示层,通过在动画状态上添加观察者,您可以将变量增加到最后一个。Observer将观察动画的当前状态,这将最终为您提供一种获取该变量当前值的方法。

最终使用,这允许对象上任何属性的动画。我推荐它

以下是自述文件中的一段话,解释了如何做到这一点:

该框架提供了许多现成的通用层和视图可设置动画的特性。可以通过创建类的新实例来设置自定义特性的动画。在本例中,我们声明了一个自定义卷属性:

最后使用,它允许对象上任何属性的动画。我推荐它

以下是自述文件中的一段话,解释了如何做到这一点:

该框架提供了许多现成的通用层和视图可设置动画的特性。可以通过创建类的新实例来设置自定义特性的动画。在本例中,我们声明了一个自定义卷属性:


简单的回答是你不能。不管怎样,设置属性值的动画是什么意思?您是指标签或其他UI元素中其值的字符串表示形式吗?唯一的方法是使用计时器或递归调用显示值的方法来增加值。您可以对自定义CALayer属性执行此操作。感兴趣?简单的回答是你不能。不管怎样,设置属性值的动画是什么意思?您是指标签或其他UI元素中其值的字符串表示形式吗?唯一的方法是使用计时器或递归调用显示值的方法来增加值。您可以对自定义CALayer属性执行此操作。有兴趣吗?如果你能详细说明一下就好了。如果你能详细说明一下就好了。
prop = [POPAnimatableProperty propertyWithName:@"com.foo.radio.volume" initializer:^(POPMutableAnimatableProperty *prop) {
  // read value
  prop.readBlock = ^(id obj, CGFloat values[]) {
    values[0] = [obj volume];
  };
  // write value
  prop.writeBlock = ^(id obj, const CGFloat values[]) {
    [obj setVolume:values[0]];
  };
  // dynamics threshold
  prop.threshold = 0.01;
}];

anim.property = prop;