Последовательно «прошивать» UIButtons

#iphone #cocoa-touch #uibutton

#iPhone #cocoa-touch #uibutton

Вопрос:

У меня есть серия UIButtons от 0 до N с фоновым изображением, которое является цветным. Я хочу взять последовательность чисел от 0 до N, пробежаться по ней и последовательно прошить соответствующую кнопку для каждого числа. Я думал о том, чтобы изменить фон на белый и использовать режим ожидания, но мне не удалось заставить его работать. Кнопки должны мигать последовательно с равным промежутком времени между вспышками. Псевдокод является:

 for(i in sequence){
    [[buttons objectAtIndex:i] flash];
    //The flash must complete before the next button flashes.
}
  

Есть ли способ имитировать ту же анимацию, что и нажатие кнопки, потому что это было бы идеально? По сути, я делаю эти вспышки, чтобы показать пользователю последовательность нажатия кнопок, есть ли более элегантный способ сделать это? Должен ли я использовать какой-либо пользовательский вид вместо UIButton (мне нужно, чтобы он был интерактивным, но я мог бы запрограммировать это вместо использования кнопки)?

Ответ №1:

NSTimer — ваш друг. Ознакомьтесь с документацией к нему. Вы могли бы запускать его с заданным интервалом и просто увеличивать количество при каждом срабатывании.

Для анимации посмотрите на методы анимации, предусмотренные в документации UIView. Должно быть все, что вам нужно.

НЕ ИСПОЛЬЗУЙТЕ режим ожидания ни при каких обстоятельствах. Это сделает все полностью невосприимчивым во время его сна. Существуют всевозможные другие, более полезные методы, которые допускают задержки.

Комментарии:

1. Да, я вижу, что NSTimer появляется во многих моих поисковых системах. Я предполагаю, что вместо цикла for я просто использую таймер и глобальный счетчик, затем, когда последовательность будет выполнена, отключите таймер. Я понял, что sleep испортит основной поток, поэтому я прекратил его использовать! Спасибо!