延迟/时间目标-C语句执行

时间:2010-11-13 03:56:48

标签: objective-c

所以我有这个代码将NSButton移动到列出的坐标

[[MyNSButton animator] setFrame:NSMakeRect(567, 228, 109, 151)];

然后我有相同的代码移动另一个NSButton

[[MyNSButton2 animator] setFrame:NSMakeRect(695, 228, 109, 151)];

我想要做的是让第一个语句执行,然后当整个动画结束时,并且在延迟可能的0.5秒之后,让下一个进行。我怎么能这样做?

5 个答案:

答案 0 :(得分:11)

或者你也可以这样做,但你需要采取相应的方法。

[self performSelector:@selector(onGeocoding:) withObject:nil afterDelay:60.0];

答案 1 :(得分:9)

您需要使用NSTimer 这是代码如何做到

[NSTimer scheduledTimerWithTimeInterval:.5 target:self selector:@selector(getnextButton) userInfo:nil repeats:NO];

其中getnextButton是在.5秒后调用的方法。 将代码放在此方法中,然后在.5秒后执行。

希望这会对你有所帮助。

答案 2 :(得分:4)

如果你只是想延迟代码执行,那么你可以让主线程使用它来休眠:

[NSThread sleepForTimeInterval:5.0];

这将使线程延迟5秒,然后执行将开始。请将此语句放在需要延迟的位置。希望这会对你有所帮助。

答案 3 :(得分:1)

您需要查看Cocoa动画编程指南,特别是Setting and Handling Progress Marks部分。当动画完成移动到第二个矩形时,触发移回第一个;当它回到第一个时,触发移动到第二个,无限制。

答案 4 :(得分:1)

我认为这种代码会有所帮助。创建一个新的队列(线程),让它睡觉!多数民众赞成......

  

dispatch_async(dispatch_queue_create(“loadqueue”,nil),^ {           [NSThread sleepForTimeInterval:2];           //代码在这里......       });