所以我有这个代码将NSButton移动到列出的坐标
[[MyNSButton animator] setFrame:NSMakeRect(567, 228, 109, 151)];
然后我有相同的代码移动另一个NSButton
[[MyNSButton2 animator] setFrame:NSMakeRect(695, 228, 109, 151)];
我想要做的是让第一个语句执行,然后当整个动画结束时,并且在延迟可能的0.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]; //代码在这里...... });