加載我要顯示用戶該值最初是0比它幾秒鐘值時視圖的目標C
曾爲完成後增加至1比2比3序列重複由我 我在寫這個的viewDidLoad代碼,但它在打印標籤直接99,但我想根據您的需求,您需要使用NSTimer
用於更新您的標籤,以顯示用戶不斷變化的值從0到99
for(int i=0;i<100;i++){
_totalEffort.text=[NSString stringWithFormat:@"%d",i];
}
加載我要顯示用戶該值最初是0比它幾秒鐘值時視圖的目標C
曾爲完成後增加至1比2比3序列重複由我 我在寫這個的viewDidLoad代碼,但它在打印標籤直接99,但我想根據您的需求,您需要使用NSTimer
用於更新您的標籤,以顯示用戶不斷變化的值從0到99
for(int i=0;i<100;i++){
_totalEffort.text=[NSString stringWithFormat:@"%d",i];
}
進展
步驟1:啓動計時器在viewDidLoad()
與進步價值0
:在@interface
類
@interface BUViewController: UIViewController {
NSTimer *timerCount;
int progress;
}
步驟2創建2個變量。
progress = 0;
timerCount = [NSTimer timerWithTimeInterval:0.5 target:self selector:@selector(updateLabel) userInfo:nil repeats:YES];
步驟3:創建方法與計時器更新標籤文本在它的檢查進度值,雖然其覆蓋面100
停止計時器。
-(void)updateLable{
if (progress<100) {
lblProgress.text = [NSString stringWithFormat:@"%d",progress];
progress++;
}else{
[timerCount invalidate];
timerCount = nil;
}
}
希望這可以幫助您實現預期產出。
爲此,您可以使用NSTimer
您需要更新其selector
方法中的值UILabel
值。您可以使用此代碼。
-(void)viewDidLoad{
[super viewDidLoad];
self.time = 0;
_labelTimer.text [email protected]"0";
[self startTimer];
}
- (void)startTimer {
self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerAction:) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSDefaultRunLoopMode];
}
- (void)timerAction:(NSTimer *)timer {
self.time++;
if (self.time == 100)
{
[self stopTimer];
}
_labelTimer.text = [NSString stringWithFormat:@"%d",self.time];
}
-(void)stopTimer{
[self.timer invalidate];
self.timer = nil;
}
我認爲這將有助於你:
@interface ViewController(){
int i;
NSTimer *myTimer;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
myTimer = [NSTimer scheduledTimerWithTimeInterval:0.5
target:self
selector:@selector(setData)
userInfo:nil
repeats:YES];
i = 0;
}
-(void)setData{
_totalEffort.text=[NSString stringWithFormat:@"%d",i];
i = i + 1;
if(i == 100){
[myTimer invalidate];
myTimer = nil;
}
}
感謝它爲我工作(y ) –
這裏是你的問題的代碼。希望它可以幫助你。
- (void)viewDidLoad
{
[super viewDidLoad];
counter = 0;
t = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(updateLabel) userInfo:nil repeats:YES];
}
-(void)updateLabel
{
for (int i = counter; i<counter+1; i++)
{
_totalEffort.text=[NSString stringWithFormat:@"%d",i];
}
counter++;
if (counter ==101)
{
[t invalidate];
}
}
您正在使用您的循環阻止運行循環。你只需要在每次迭代中恢復它。
for(int i=0;i<100;i++){
[email protected](i).stringValue;
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]];
}
使用NSTimer並在一定的時間間隔後更新標籤中的值。 – kb920
對(INT I = 0; I <100;我++){ [的NSTimer scheduledTimerWithTimeInterval:1000 目標:自 選擇器:@selector(個體) USERINFO:無 重複:NO]; _totalEffort.text = [NSString stringWithFormat:@「%d」,i]; } **不適合我** –
請參閱http://stackoverflow.com/questions/17731840/how-to-add-a-delay-to-a-loop –