我找到了有趣的东西..下面的代码没有显示@"One",它在3秒延迟后显示@"两个"..我认为@"One"需要显示然后3秒延迟然后@"2 "需要弹出......我错了吗?
self.statusLabel.text = @"One";
sleep(3);
self.statusLabel.text = @"Two";
Run Code Online (Sandbox Code Playgroud)
谢谢..
如果你在主线程上执行此操作,那sleep(3)将阻止它,冻结应用程序3秒钟.事件处理(包括重新绘制UI等内容)将不会发生,直到结束.
要获得您期望的结果,请尝试以下方法:
[self.statusLabel setText:@"One"];
[self.statusLabel performSelector:@selector(setText:)
withObject:@"Two"
afterDelay:3.0];
Run Code Online (Sandbox Code Playgroud)
第一次更改,然后将执行第二次更改的调用排队,以便将来发生.然后将控制权返回给OS以进行任何必要的重绘.
| 归档时间: |
|
| 查看次数: |
3669 次 |
| 最近记录: |