Что такое «смещенное изображение» с точки зрения Core Animation в iPhone OS? - PullRequest
13 голосов
/ 25 мая 2009

Инструменты сообщают, что есть «выровненные изображения», которые анимируются основной анимацией. Что это значит?

ОБНОВЛЕНИЕ: я видел это в Instruments.app> Core Animation.

Ответы [ 2 ]

19 голосов
/ 29 мая 2009

Мне бы хотелось больше информации о том, где вы видите это, но я подозреваю, что это относится к изображению, которое не выровнено по пикселям. Кварц позволяет рисовать с дробными пикселями (напомним, что CGPoint принимает CGFloats, а не NSIntegers), но он более дорогой и имеет тенденцию создавать немного размытости. Вы не можете действительно рисовать на дробном пикселе, поэтому Кварц должен сделать сглаживание, чтобы осуществить его. Это требует времени и определенно ухудшит производительность Core Animation.

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

3 голосов
/ 06 апреля 2012

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

В этом контексте «выровненный» означает, что запрошенная точка отображения не отображается непосредственно на пиксель экрана (например, это может быть между двумя пикселями), и поэтому должна быть нарисована в двух соседних пикселях и сглажена в создайте иллюзию, что она была нарисована «между ними».

Это почти всегда происходит, когда вычисляется рамка вида (а не указано в Интерфейсном Разработчике), поскольку координата X, координата Y, ширина и высота CGRect являются значениями CGFloats и, следовательно, допускают дробные значения.

Например, поле 100.8px на 50.1px с центром в (200.5, 35.5) является допустимым кадром, и ОС попытается отобразить его наилучшим образом. Дополнительные накладные расходы на интерполяцию и сглаживание, необходимые для одного пикселя, достаточны для серьезного снижения производительности на устаревшем оборудовании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...