屬性是通過(guò) POPAnimatableProperty
來(lái)定義的。在下面的這個(gè)例子中,我們創(chuàng)建出了一個(gè)彈簧動(dòng)畫(huà)效果并顯式的設(shè)置它去響應(yīng) -[CALayer bounds]
:
POPSpringAnimation *anim = [POPSpringAnimation animation];
anim.property = [POPAnimatableProperty propertyWithName:kPOPLayerBounds];
Pop動(dòng)畫(huà)引擎本身提供了很多可以做動(dòng)畫(huà)的屬性供你定制。你可以在這個(gè)類(lèi)里面創(chuàng)建出一個(gè)實(shí)例對(duì)象:
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;
為了了解更多的可以做動(dòng)畫(huà)效果的屬性,你可以參考 POPAnimatableProperty.h
查看更多的細(xì)節(jié)。
更多建議: