2010-10-12 1 views
0

В настоящее время у меня есть игра, которая использует один единственный UIView для рисования ряда спрайтов на экране по методу drawrect каждой игры tic. Мне сообщили, что для производительности было бы лучше разделить каждый спрайт на собственный UIView.Разделение одного главного UIView на несколько UIViews для рисования спрайтов (Quartz 2d)

Мои вопросы:

  • Структурно, как это работает? Создать один UIView, а затем добавить дополнительные UIViews в качестве подзаголовка?
  • Должен ли gamecontroller вызывать один UIView, а затем, что UIView вызывает следующий? Или он должен вернуться к игровому контроллеру.

Большое спасибо заранее,

Martin

ответ

1

Вы могли бы рассмотреть возможность использования CALayers вместо UIViews, если вы собираетесь создать кучу отдельных контейнеров, то они будут быстрее для основных анимационных операций и т. д.

Если вы используете UIViews, у вас будет один родительский вид, а затем добавьте в него другие подзоны, если вы используете CALayers, вы добавите свои слои в качестве подслоев на основной view.layer.

+0

Спасибо Бен. Итак, с CALayer вы просто передадите данные с gamecontroller таким же образом? Итак, вы будете кормить координатой x, где спрайт должен двигаться и использовать базовую анимацию для перехода к этой точке? Если я использую UIViews - как добавить subviews - я бы использовал «addubview» в первом UIView? – GuybrushThreepwood

+0

Да, используйте addSubView для добавления подпунктов к родительскому представлению и addSublayer для добавления подслоев к родительскому слою. Любой из них должен работать, но CA будет более оптимизирован, если вы будете напрямую использовать слои. – Ben