Instruments сообщает, что есть «смещенные изображения», которые анимируются основной анимацией. Что это обозначает?
ОБНОВЛЕНИЕ: я видел это в Instruments.app> Core Animation.
2 ответа
Мне бы хотелось получить больше информации о том, где вы это видите, но я подозреваю, что это относится к изображению, которое не выровнено по пикселям. Кварц позволяет рисовать с дробными пикселями (напомним, что CGPoint использует CGFloats, а не NSIntegers), но он более дорогой и имеет тенденцию создавать некоторую размытость. На самом деле вы не можете рисовать дробным пикселем, поэтому Quartz должен применить сглаживание, чтобы добиться этого. Это требует времени и, безусловно, ухудшит производительность Core Animation.
Кварц не предупредит вас о том, что вы рисуете дробные пиксели, и особенно недоброжелателен к тексту. Так что это то, о чем вам нужно думать каждый раз, когда вы делаете программный макет.
Неверно выровненные представления заставляют средство визуализации сглаживать перед отрисовкой.
В этом контексте «несовпадение» означает, что запрошенная точка отображения не отображается непосредственно на пиксель экрана (например, она может находиться между двумя пикселями), и поэтому должна быть оттянута к двум соседним пикселям и сглажена, чтобы создать иллюзию. что он нарисован «между ними».
Это почти всегда происходит, когда фрейм представления вычисляется (а не указывается в Interface Builder), потому что координата X, координата Y, ширина и высота CGRect являются CGFloats и, следовательно, допускают дробные значения.
Например, прямоугольник размером 100,8 на 50,1 пикселей с центром в точке (200,5, 35,5) является допустимым кадром, и ОС будет пытаться отобразить его наилучшим образом, с которым может справиться. Дополнительных накладных расходов на интерполяцию и сглаживание, требуемых только для одного пикселя, достаточно, чтобы серьезно снизить производительность на старом оборудовании.
Похожие вопросы
Связанные вопросы
Новые вопросы
iphone
НЕ ИСПОЛЬЗУЙТЕ этот тег, если вы не обращаетесь конкретно к iPhone и / или iPod touch от Apple. Для вопросов, не зависящих от оборудования, используйте тег [ios]. Больше тегов, которые нужно рассмотреть, это [xcode] (но только если вопрос касается самой IDE), [swift], [target-c] или [cocoa-touch] (но не [cocoa]). Пожалуйста, воздержитесь от вопросов, касающихся iTunes App Store или iTunes Connect. Если вы используете C #, пометьте [mono].