2012-02-26 2 views
0

У меня есть некоторые представления, которые в основном содержат контент, текстуры и тени, которые нужно перемещать, сдвигая их в другую часть экрана.Анимационный (скользящий) вид с контентом, созданным в drawRect:

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

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

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

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

благодаря Карлу

ответ

0

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

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

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

+0

Да, это было очень полезно, спасибо –

+0

Без проблем, если вы удовлетворены, вы можете нажать и дать мне небольшую репутацию :) – Ganzolo

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