Производительность iPhone UITableViewCell при добавлении нескольких представлений против одного представления с помощью drawRect - PullRequest
0 голосов
/ 06 октября 2011

Я создаю UITableViewCells с несколькими пользовательскими элементами внутри, мой вопрос в том, каким путем идти:

1) Добавить все, что мне нужно, как отдельные представления в contentView, используя UILabels для текста и UIImageViews для изображений (в настоящее время использую это)

или

2) Добавьте один подклассный вид в contentView, и весь мой текст будет выглядеть как NSString, затем мои изображения и UIImages и нарисовать всеat drawRect

Что будет работать лучше и в каких сценариях один будет лучшим выбором по сравнению с другим? Как я вижу, если вы на самом деле не рисуете линии или что-то в contentView, просто переход к варианту 1 будетбудет проще, и в соответствии с этим Какао с любовными клетками он более эффективен, хотя и немного стар, поэтому я не знаю, изменилось ли это.

Так что же лучшедля производительности и в какой ситуации вы бы определенно использовали один над другим?

Ответы [ 2 ]

1 голос
/ 06 октября 2011

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

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

1 голос
/ 06 октября 2011

Начните с первого метода использования отдельных UILabel и UIImageView.Тестируйте на реальных устройствах и оптимизируйте, если вы видите проблемы с производительностью.

В зависимости от содержимого у меня был вариант 1, который будет быстрее, чем рисование всего в одном представлении.Особенно, когда этот вид должен был рисовать изображения.UIImageView сильно оптимизированы Apple.

Хороший способ получить показатели производительности - инструмент Core Animation.

...