Frage

I would like to animate the movement of an image without effects. To animate it normally, I could use:

[UIView animateWithDuration:2.5f animations:^{
    CGRect currentFrame=self.image.frame;
    currentFrame.origin.x-=10;

    [self.image setFrame:currentFrame];

}];

Yet, I found that if this method is used, the image gradually speeds up, goes a little faster, then gradually comes to a stop.

Is there any way to animate the movement of a UIImageView, keeping the view at the same speed the entire time?

War es hilfreich?

Lösung

Your animation speeds up and slows down because it uses the "natural" UIViewAnimationOptionCurveEaseInOut curve. Use UIViewAnimationOptionCurveLinear option to use constant speed motion:

[UIView animateWithDuration:2.5f
    delay:0
    options:UIViewAnimationOptionCurveLinear
    animations:^{
        CGRect currentFrame=self.image.frame;
        currentFrame.origin.x-=10;
        [self.image setFrame:currentFrame];
    } 
    completion:^(BOOL finished){
    }
];

Andere Tipps

[UIView animateWithDuration:1.0 delay:0.0 options:0 animations:^{

} completion:^(BOOL finished) {

}];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top