2010-09-24 10 views
0

Для небольшого тренировочного проекта я сделал это:Есть ли более быстрый способ сделать это?

Я добавил сетку экземпляров UIView к представлению контроллеров вида, которые работают почти как ЖК-дисплей с числовым сегментом (но эти ЖК-экраны, которые имеют квадраты и могут показывать в значительной степени все, а не только цифры ... с низким разрешением, хотя).

На экране есть 8 * 8 видов (всего 64 вида, всего). Объект контроллера может установить цвет каждого представления, чтобы показать определенный номер. Я запрограммировал уже «матрицу» для числа 8.

Я хотел бы добавить какой-то шумовой эффект, как сломанный телевизор без приема. Когда нет номера для показа, тогда все эти 64 вида должны вспыхивать дико со всеми цветами радуги, как можно быстрее.

My for loop, который просматривает все эти виды и устанавливает, что backgroundColor может делать только 5-10 раз в секунду. Экран не обновляется достаточно быстро, и он не похож на шум телевизора.

Было бы намного быстрее, если бы я реализовал эту матрицу в OpenGL ES, а затем вместо этого отобразил это представление OpenGL ES? Как трудно сделать матрицу адресных квадратов в OpenGL ES?

ответ

2

Обновление 64 UIView на высокой частоте будет сложным. Я бы предложил использовать один UIView и создать 64 CALayers внутри этого представления.

+0

Является ли CALayer быстрее, чем UIView об обновлении? – AechoLiu

+0

Переключение CALayer выполняется быстрее, чем рисование в виде. – hotpaw2

+0

Да. На самом деле UIview построен на CALayer. В конечном итоге вы в конечном итоге должны создать новые CALayers и добавить их в качестве подслоев слоя UIView. – TomH

Смежные вопросы