首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSThread和事件

NSThread和事件
EN

Stack Overflow用户
提问于 2012-09-17 18:36:33
回答 1查看 213关注 0票数 0

我使用类似于android toast的东西向用户发送消息。

这个敬酒词显示在当前视图中,在这种情况下,我想要更改视图,并且没有时间阅读消息。

因此,我使用一个线程在当前视图中停留了3秒钟,但toast也被延迟了。

代码语言:javascript
复制
[theHoleView makeToast:@"OK!!" duration:3 position:@"center" image:[UIImage imageNamed:@"nocorrect.png"]];
[NSThread sleepForTimeInterval:3];
[self.navigationController popToRootViewControllerAnimated:YES];

我在Toast之后执行NSThread,为什么toast延迟了?

提前谢谢你

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-17 18:48:30

这是因为你还没有回到绘制屏幕的主循环中。您可以使用[CATransaction flush]刷新图形上下文,例如

代码语言:javascript
复制
[theHoleView makeToast:@"OK!!" duration:3 position:@"center" image:[UIImage imageNamed:@"nocorrect.png"]];
[CATransaction flush];
[NSThread sleepForTimeInterval:3];
[self.navigationController popToRootViewControllerAnimated:YES];

您可能需要添加Quartz框架才能正常工作,确保框架已添加到目标,并将头文件导入到ViewController.m文件中。即:

代码语言:javascript
复制
#import <QuartzCore/QuartzCore.h>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12457529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档