質問

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?

役に立ちましたか?

解決

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){
    }
];

他のヒント

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

} completion:^(BOOL finished) {

}];
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top