私はただ楽しみのために試していた何かについて少し混乱しています。animateBars_V1
UIImageViewsの配列を使用し、各UIImageViewの高さを変更して、変化する色付きのバーのセットを表示するという小さなメソッドを作成しました。
- (void)animateBars_V1 {
srandom(time(NULL));
for(UIImageView *eachImageView in [self barArray]) {
NSUInteger randomAmount = kBarHeightDefault + (random() % 100);
CGRect newRect;
CGRect barRect = [eachImageView frame];
newRect.size.height = randomAmount;
newRect.size.width = barRect.size.width;
newRect.origin.x = barRect.origin.x;
newRect.origin.y = barRect.origin.y - (randomAmount - barRect.size.height);
[eachImageView setFrame:newRect];
}
}
これは正常に機能します。次に、ボタンが押されたときのUIActionを含むUIButtonを追加しました。ボタンが押されるたびanimateBars_V1
に呼び出され、色付きのバーが更新されます。
- (IBAction)buttonPressed {
for(int counter = 0; counter<5; counter++) {
[self animateBars_V1];
NSLog(@"COUNTER: %d", counter);
}
}
私の質問はただの楽しみのためです。ボタンを押すたびにanimateBars_V1
5回電話することにしました。何が起こるかというと、ループが終了するまでバーは変化しません。これにより、次のようになります。
Screen as per storyboard
COUNTER: 0
COUNTER: 1
COUNTER: 2
COUNTER: 3
COUNTER: 4
Screen Updates
これは正しい動作ですか?これはただの楽しみのためだったので、修正や回避策は必要ありません。将来の参考のために何が起こっているのかもっと興味がありました。