我需要将屏幕更新推迟到下一次用户交互。虽然代码改变了显示,但我希望它稍后显示,可以吗?
问问题
80 次
2 回答
0
也许看看 NSObject 方法performSelector:withObject:afterDelay:
由于所有对象都派生自 NSObject,因此您可以对所有对象使用上述方法。例如看这里:How to use performSelector:withObject:afterDelay: with original types in Cocoa?
于 2013-08-31T15:28:46.980 回答
0
自从引入 ARC 以来,推迟某些事情的最好方法是使用 GCD dispatch_after 函数。
double delayInSeconds = <#time#>;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
<#code to be executed on the main queue after delay#>
});
这是 Xcode 中已经存在的片段的副本。
使用此功能,您可以发布您放在预定义区域内的任何方法。屏幕更新由系统控制,您不能推迟更新,但可以推迟更改屏幕数据的方法。
于 2013-08-31T15:47:38.627 回答