Анимация (скольжение) представления с содержимым, созданным в drawRect: - PullRequest
0 голосов
/ 26 февраля 2012

У меня есть некоторые виды, в основном с содержимым, текстурами и тенями, которые необходимо переместить, переместив их в другую часть экрана.

Эти текстуры создаются в drawRect: и должны отображаться только один раз в течение срока действия представления (за исключением, возможно, их перекрашивания).

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

Мне было интересно, есть ли какая-либо ценность в рендеринге текстуры, напрямую используя представления CALayer. Это позволит избежать рендеринга текстуры при каждом перемещении вида?

Я никогда раньше не использовал CALayer.

спасибо Карлу

1 Ответ

0 голосов
/ 26 февраля 2012

Если вы переопределите drawRect и используете свой вид таким образом, он будет перерисовываться каждый раз.Что вы можете сделать, это создать метод, который рисует ваше представление один раз и который вызывается один раз (скажем, после init) и не переопределяет drawRect.Это должно исправить вашу проблему с производительностью.

Еще одна вещь, каждый вид поддерживается слоем (CALayer), если вы делаете анимацию и хотите повысить производительность, вам следует переместить слой вместо перемещения его вида (UIView)во время анимации.Чтобы получить доступ к слою вида, просто сделайте myView.layer.

Надеюсь, это было полезно.

...