当前位置: 代码迷 >> Iphone >> 怎么延迟跳转啊
  详细解决方案

怎么延迟跳转啊

热度:64   发布时间:2016-04-25 06:04:14.0
如何延迟跳转啊?
我在A页面上有一个按钮,点击按钮之后要改变背景图片,然后延迟两秒(让用户看到图片已更改)然后跳转

我在改变图片之后用了[NSThread sleepForTimeInterval:2.0];来延迟两秒,然后跳转

但是最后发现,背景图片根本就没有改变,卡住了两秒,然后跳转的
如果不用延迟这个语句的话是可以更改成功的
请问大神,这是怎么回事?

------解决方案--------------------
试试用方法:performSelector:withObject:afterDelay:
延迟时间作为afterDelay的参数
------解决方案--------------------
1楼说的对,使用performSelector
还有方法就是使用代码段
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{
[NSThread sleepForTimeInterval:2.0];
dispatch_sync(dispatch_get_main_queue(),^{
//跳转页面
});
});
------解决方案--------------------
从来不用NSThread,可以用performSelector,也可以用block,但是不是如楼上说的,而是用dispatch_after,示例如下:


int64_t delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    ///
});

你在XCode中输入 dispatch 代码就会自动生成了。
  相关解决方案