我对我只是为了好玩而尝试的事情有点困惑。我编写了一个小方法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
这是正确的行为吗?我不需要修复或解决方法,因为这只是为了好玩,我更好奇发生了什么以供将来参考。