2016-03-25 2 views
0

Я пытаюсь создать анимированный баннер СИД. Я могу создавать представления букв с помощью 5х8-разрядного дисплея и перемещать текст (https://github.com/drollig8/LEDBanner.git): Проблема: только с 10-буквенным текстом iOS придется обновлять 400 просмотров 25 раз в секунду. Этот тип убивает процессор.Светодиодный баннер в Swift с использованием просмотров

Что я могу сделать, чтобы сделать эту попытку более энергосберегающей?

+0

Как насчет использования шрифта вместо светодиодов. Это вариант? – KeyMaker00

ответ

1

Вот один из подходов для отображения прокрутки справа налево.

  1. Создайте пользовательский вид, который может нарисовать ячейку 5x8 с помощью функции drawRect.
  2. Используйте 11 этих видов, чтобы представить свой дисплей. Добавьте их как подпункты в соответствующий вид размера.
  3. Каждые 1/25 секунды переместите 11 видов, и если крайний левый прокручивается с конца, переместите его в правую сторону и обновите его новыми данными.
+0

Ну, это похоже на то, что содержимое ячейки остается исправленным. Но при плавной прокрутке буквы должны «скользить» по ячейке, что означает, что я должен создать новую ячейку 25 раз в секунду. И каждая ячейка должна содержать 40 подпунктов для отображения «бит» или «цифр». –

+0

Вы перемещаете ячейки 1/5 ячейки, оставшиеся каждые 1/25 секунды. Биты представляют собой прямоугольные заливки. Посмотрите, как рисовать заполненные прямоугольники в рутине drawRect. Этот метод будет использовать всего 12 просмотров, и новое письмо будет отображаться только по мере того, как оно впервые вошло в экран. – vacawama

+0

Вы можете сделать это так, используя subviews для представления бит. Вы создавали бы столько подзонов в ячейке, сколько битов. Прокрутка буквы все равно будет такой же простой, как перемещение супер-представления ячейки. Таким образом, у вас будет три уровня просмотров: один вид для представления дисплея, 11-ти надписей на букву и так много подпрограмм каждой буквы для представления «на» пикселей. – vacawama