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

发布于 2025-01-08 09:27:24 字数 324 浏览 0 评论 0原文

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

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

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

有什么指点吗?

一百万谢谢。

I'm new developer in the beginning stages of writing a simple dictionary app for personal use on the iPhone, and I'm wondering what method to use to control how long my words are displayed on screen.

I've experimented with NSTimer and performSelector:withObject:afterDelay: but Im wondering if these are the simplest, most efficient ways to approach the problem.

I'm not sure if I should use a sleep method like NSThread sleepForTimeInterval: because I'd like to have the option to have other things going on in the app while the word list is on screen.

Any pointers?

A million thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

和我恋爱吧 2025-01-15 09:27:24

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

您不想使用睡眠,尤其是在主线程上。这将使您的应用程序无响应。

您可能还想查看块动画。例如,您可以淡出该词,然后淡出。请参阅:[UIView animateWithDuration:delay:options:animations:completion:]。一开始会有点令人生畏,特别是如果您不熟悉代码块的话。但这种方法给了你很多控制权。

NSTimer or performSelector:withObject:afterDelay: are both good options. The performSelector:withObject:afterDelay: seems more straight forward to use, in my opinion.

You don't want to use sleep, especially on the main thread. This will make your app unresponsive.

You might also want to look at block animations. You could, for example, fade the word on then off. See: [UIView animateWithDuration:delay:options:animations:completion:]. It is a little more intimidating at first, especially if you are not familiar with code blocks. But this method gives you lots of control.

倾听心声的旋律 2025-01-15 09:27:24

您可以使用 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#>
});

You can use Grand Central Dispatch's dispatch_after functionality:

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#>
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文