首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Iphone >

怎么延迟跳转啊

2013-03-01 
如何延迟跳转啊?我在A页面上有一个按钮,点击按钮之后要改变背景图片,然后延迟两秒(让用户看到图片已更改)

如何延迟跳转啊?
我在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 代码就会自动生成了。

热点排行