Какой самый легкий способ рисовать изображения и текст в Objective C? - PullRequest
3 голосов
/ 03 февраля 2011

Я планирую реализовать компонент, похожий на фотоальбом iphone. Я думаю, что использование uviews приведет к тому, что компонент будет иметь плохую производительность, я имею в виду медленную прокрутку и все прочее ... так, каким образом брать? CALayer лучше, чем UIViews с точки зрения производительности? Есть ли другой (более легкий) способ рисовать изображения или текст без использования подклассов UIView?

Любая ссылка или идея будут отличными,

Спасибо тебе!

Ответы [ 2 ]

2 голосов
/ 03 февраля 2011

Существует множество обучающих программ о графике, плюсах и минусах UIView и графики.Я не эксперт, но подозреваю, что производительность, скорее всего, будет зависеть от ваших стратегий создания и кеширования.То есть, если вы хотите быструю прокрутку, то посмотрите на минимизацию количества созданных объектов, кэширование и повторное использование тех, которые есть, и эффективную подпрограмму загрузки блоков для загрузки данных - все это даст большие преимущества.

Но я бы склонялся кСначала сделайте простое приложение для проверки концепции, загрузите его на устройство и посмотрите, как быстро оно работает и где вам, скорее всего, понадобится решить проблемы с производительностью.Помимо стандартных стратегий проектирования, таких как кэширование и повторное использование компонентов, попытка оптимизировать производительность до того, как вы определили, где возникают узкие места в производительности, обычно не является хорошей идеей.

0 голосов
/ 03 февраля 2011

Если вы просто заново изобрели существующую системную реализацию, начните с использования системной реализации и посмотрите, каковы конкретные проблемы с этой точки.

Если вы что-то очень специализированное или не можете легко добиться с помощью UIView, посмотрите CoreGraphics.framework и CoreText.framework.

Большая часть рисования и анимации в библиотеках более высокого уровня используют технологии CoreGraphics. однако они часто являются упрощенными или более высокого уровня и могут содержать определенные затраты на абстракцию. Рендеринг cg не для новичка - если вы не понимаете рендеринг UIKit / AppKit, вы, вероятно, потеряете много времени на его изучение, и это не обязательно будет улучшением реализации UIKit / AppKit. если вам очень комфортно работать с UIView / NSView и графикой, то вы можете получить много пользы для своего настроенного чертежа.

(я предполагаю, что вы не собираетесь использовать слой OpenGL с этим)

не может быть хорошей идеей «предположить, что использование uiviews приведет к плохой производительности компонента». если реализация уже существует, поверьте, что Apple потратила некоторое время на ее оптимизацию - у вас будет время для инвестиций и, возможно, знаний, которые можно приобрести в процессе разработки улучшения, соответствующего вашим потребностям. Я бы порекомендовал вам начать с того, с чем вы уже знакомы, а затем определить, нуждается ли оно в улучшении - вы даже можете использовать CG-рендеринг в UIView / NSView, так что вам не обязательно придется воссоздавать замену UIView. поскольку вы не упомянули CoreGraphics в ОП, я полагаю, вы не очень хорошо с ней знакомы.

удачи

...