我对iOS编程非常陌生,但是我已经遇到了一个无法解决的大问题。似乎很容易。
我有一个按钮,单击它以更改名为message
的标签
这是代码:
- (IBAction)react:(id)sender {
int hasard ;
hasard=3;
message.text=[NSString stringWithFormat:@"1 %d",hasard];
sleep (1);
message.text=[NSString stringWithFormat:@"2 %d",hasard];
}
它工作正常,但我看不到第一个
message.text
更改。当我单击按钮时,我必须等待一秒钟,然后看到
2 3
我以为我可以看到
1 3
,请稍等片刻,然后再看到2 3
。什么东西少了?似乎很明显。
最佳答案
您正在阻止主线程(嗯,而sleep()
阻止了它)。如果这样做,将不会显示对UI的已提交更改-您只会看到最终结果。您还必须做其他事情(顺便说一句,就用户体验而言,阻止UI是一个非常糟糕的主意)。您可以尝试使用计时器,例如:
int hasard = 3;
- (void)react:(id)sender
{
message.text = [NSString stringWithFormat:@"1 %d", hasard];
[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(timer:) userInfo:nil repeats:NO];
}
- (void)timer:(NSTimer *)tmr
{
message.text = [NSString stringWithFormat:@"2 %d", hasard];
}
关于ios - iOS:如何刷新功能中的 View ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14158316/