/ / UIViewの移動-Objective-C、IOS、アニメーション、UIVIEW

UIViewの移動 - objective-c、ios、animation、uiview

次の方法を使用して、プログラムでUIViewを移動しようとしています。

-(void)animatePlaybackLine: (int) currentBeat{
CGRect newFrame = CGRectMake(currentBeat*eighthNoteWidth, 0, eighthNoteWidth, 320);
[playbackLine setFrame:newFrame];
NSLog(@"Line animated to %i", currentBeat);
NSLog(@"New frame origin %f", playbackLine.frame.origin.x);
}

メソッドが呼び出されると、NSLogsは変数currentBeatが必要に応じて増加し、playbackLine(私のUIView)のフレームが必要に応じて移動しているように見えます。ただし、画面上のオブジェクトは移動しません。フレームの代わりに境界と中心を設定しようとしましたが、すべて同じような結果になりました。フレームを設定する代わりにアニメーションを使用してみました。 。

画面上の画像に変化するフレームを表示させるために私がやるべきことは他にありますか?

回答:

回答№1は1

ループでそのメソッドを呼び出していますiOSは、コードの実行が完了するまで画面を再描画しません。このようにループして、反復結果を確認することはできません。

ビューをアニメーション化するには、UIKitが提供するネイティブサポートを使用する必要があります。特に、チェックアウト UIViewクラスリファレンスのAnimationsセクション.


回答№2の場合は1

これを試して

    [UIView animateWithDuration:0.3
delay:0.0
options: UIViewAnimationCurveEaseOut
animations:^{
datePickerView.frame = imageFrame;
}
completion:^(BOOL finished){
self.datePickerViewFlag = NO;
}];