2

このメソッドを呼び出すと:

- (void)method:(int)i {
    while (image[i].center.y <= 100) {
        image[i].center = CGPointMake(image[i].center.x, image[i].center.y+2);
    }
}

ループは即座に実行され、画像は即座に y=100 のポイントに移動します。これを遅くする方法(または私が知らない代替手段)はありますか?

4

2 に答える 2

7

アニメーションを作ろうとしているようですが、このようなものかもしれません。

- (void)method:(int)i {
   [UIView animateWithDuration:2.0
                    animations:^{ 
                      image[i].center = CGPointMake(image[i].center.x, 100);
                    }];
}

これを読むことをお勧めします

http://developer.apple.com/library/ios/#documentation/windowsviews/conceptual/viewpg_iphoneos/animatingviews/animatingviews.html

于 2012-06-28T16:25:52.883 に答える
2

次のようなコードを使用してみてください。

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.25];
image.center = CGPointMake(image.center.x, image.center.y-moveAmount);
[UIView commitAnimations];
于 2012-06-28T16:26:41.180 に答える