Задержка / время выполнения оператора Objective-C - PullRequest
2 голосов
/ 13 ноября 2010

Итак, у меня есть этот код, перемещающий NSButton к указанным координатам

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

Затем у меня тот же код, перемещающий другую NSButton

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

То, что я хочу сделать, это иметьвыполняется первый оператор, а затем, когда вся анимация закончена, и после задержки, которая может составлять 0,5 секунды, начинается следующий.Как я могу это сделать?

Ответы [ 5 ]

11 голосов
/ 16 ноября 2010

Или вы также можете сделать это, но опять же вам нужно принять метод для этого.

[self performSelector:@selector(onGeocoding:) withObject:nil afterDelay:60.0];
9 голосов
/ 13 ноября 2010

Вам нужно использовать NSTimer Вот код, как это сделать

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

, где getnextButton - метод, который будет вызван через 0,5 секунды. поместите в этот метод код, который вы хотите выполнить через .5 секунд.

Надеюсь, это поможет вам.

4 голосов
/ 15 ноября 2010

Если вы просто хотите отложить выполнение кода, вы можете позволить основному потоку спать, используя это:

[NSThread sleepForTimeInterval:5.0];

Это задержит поток на 5 секунд, а затем начнется выполнение. Поместите этот оператор в нужное место. Надеюсь, это поможет вам.

1 голос
/ 18 ноября 2013

Я думаю, что такие коды будут полезны.создать новую очередь (поток) и заставить его спать!Вот и все ...

dispatch_async (dispatch_queue_create ("loadqueue", nil), ^ {[NSThread sleepForTimeInterval: 2]; // коды здесь ...});

1 голос
/ 13 ноября 2010

Вы можете обратиться к Руководству по программированию анимации для какао, в частности к разделу Установка и обработка меток .Когда анимация заканчивает движение ко второму прямоугольнику, запускайте перемещение назад к первому;когда он вернется к первому, активируйте переход ко второму, до бесконечности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...