2016-01-29 3 views
0

Я проводил собеседование для работы с iOS и получал много вопросов о пользовательском интерфейсе и, более конкретно, пользовательских пользовательских интерфейсах. Я начал читать об этом и обнаружил, что Core Graphics используется для создания этих пользовательских кнопок.Преимущества пользовательских кнопок пользовательского интерфейса

Мне было интересно, чем преимущество использования пользовательских кнопок, выполненных с использованием графиков corE, выполняется с использованием UIImage, а также изображений, созданных на основе или набросках, а затем поместив на него кнопку пользовательского интерфейса. Есть ли какое-то конкретное преимущество, кроме того, больше настроек в процессе?

В качестве стороннего я задавался вопросом, были ли какие-либо хорошие графические ядра (Quartz 2d) для obj-c, я нашел хорошее количество с быстрым, но не так много с obj-c.

ответ

0

Интересно, что это вопрос для интервью!

Вы можете проектировать кнопки в PaintCode, который преобразует ваши рисунки в код. Предположительно, с Core Graphics, производительность лучше, и она должна выглядеть хорошо, независимо от размера устройства. PaintCode говорит о преимуществах: «Независимость разрешения & Другие преимущества Нет больше @ 2x ресурсов. Будущее доказательство. Создание динамических, параметрических чертежей легко».

Для получения дополнительной информации я бы уточнил FAQ, Question 2. Вот несколько первых абзацев:

Использование изображений PNG для рисования пользовательских интерфейсов является утомительным. PNG-изображения: не зависит от разрешения, поэтому вам необходимо предоставить множество вариантов для всех видов дисплеев. Некоторые эффекты также сложны (если не невозможно) для достижения растровых изображений. Например, вам может понадобиться , чтобы нарисовать что-то со сложным изменением размера, или вы можете хотеть, чтобы изменил цвет рисунка на основе некоторых внешних условий.

Лучшим подходом, чем использование изображений, является использование кода Objective-C или Swift для рисования пользовательского интерфейса. Код не зависит от разрешения и очень гибкий, поэтому он отлично работает на всех видах дисплеев.

На стороне примечания, однако, я считаю, что гораздо проще использовать изображения, чем PaintCode. Позиционирование элементов, принимая во внимание вставки в самом изображении по сравнению с вставкой в ​​коде, на практике вызывает множество проблем. И PaintCode использует пружины и распорки, а также помогает в определении размеров изображений на разных устройствах, но при этом следует соблюдать осторожность при объединении с ограничениями макета в раскадровке. Есть вещи, которые вы можете сделать в PaintCode, чтобы сделать вашу жизнь немного, но для того, чтобы действительно ее повесить, требуется определенная практика. Создание изображений с изображением @ 2x и @ 3x на самом деле не так уж и плохо, поэтому, если вы можете избежать PaintCode, я просто хочу избежать головной боли.

+0

Большое спасибо, если бы я мог проголосовать за это, то получите его. –

+0

Вы можете принять его как ответ, хотя без голосования. –