私UILabel
は毎回リフレッシュするのではなく、最後の値のみでリフレッシュします。のすべての値を印刷したいUILabel
。
for (int i=0; i<4; i++) {
lblText.text=[NSString stringWithFormat:@"%i",i];
sleep(1.2);
}
値をオーバーライドしています。反復ごとに新しい値を追加する新しい配列を作成する必要があります。
また、メインスレッドでスリープを使用しないでください。それはUIのブロックです
ラベルのテキスト間隔を特定の時間に変更したい場合は、なぜ使用しないのですかNSTimer
_timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(changeText) userInfo:nil repeats:YES];
_loopTime = 0;
- (void)changeText
{
lblText.text=[NSString stringWithFormat:@"%i",_loopTime++];
if(_loopTime >= 3)
{
[_timer invalidate];
}
}
sleep()
メインスレッドでは使用しないでください。UIがフリーズするからです。performSelector: afterDelay:
ラベル内のテキストを更新する関数 (独自の) を呼び出す which を使用します
Amit ..よくわかりませんが、私によると、iOS は 2 つのメソッドの実行の間に画面を再描画します。そして、最新の値のみが再描画されます。カウンターを達成するために。次のように、メソッドを正しくしてタイマーを開始する必要があります。
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.2
target:self
selector:@selector(counter:)
userInfo:[NSNumber numberWithInt:i]
repeats:YES];
これはカウンターメソッドです。
-(void) counter:(NSNumber)count
{
if(count == 4)
{
[timer invalidate]; timer = nil;
}
lblText.text=[NSString stringWithFormat:@"%i",count];
//increment the counter
i++;
}
お役に立てれば。