如何在给定的时间内显示NSArray

时间:2012-02-22 22:48:44

标签: ios objective-c iphone cocoa-touch timer

我是开发阶段的新开发人员,在iPhone上编写一个供个人使用的简单字典应用程序,我想知道用什么方法来控制我的字在屏幕上显示多长时间

我尝试过NSTimerperformSelector:withObject:afterDelay:,但我想知道这些是否是解决问题的最简单,最有效的方法。

我不确定是否应该使用像NSThread sleepForTimeInterval:这样的睡眠方法,因为我希望在屏幕上显示单词列表时可以选择在应用程序中进行其他操作。

任何指针?

百万感谢。

2 个答案:

答案 0 :(得分:7)

NSTimerperformSelector:withObject:afterDelay:都是不错的选择。在我看来,performSelector:withObject:afterDelay:似乎更直接使用。

您不想使用sleep,尤其是在主线程上。这会让您的应用无响应。

您可能还想查看块动画。例如,你可以将这个词淡出然后关闭。请参阅:[UIView animateWithDuration:delay:options:animations:completion:]。一开始它有点吓人,特别是如果你不熟悉代码块。但是这种方法可以让你有很多控制权。

答案 1 :(得分:3)

您可以使用Grand Central Dispatch的dispatch_after功能:

double delayInSeconds = 2.0;
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
        <#code to be executed on the main queue after delay#>
});