Я использую UICollectionView с ячейками AutoSizing, который похож на UITableView.
Как уже упоминалось в предыдущих вопросах: q1 , q2 принятие Self-Для определения размеров ячеек требуется реализация метода preferredLayoutAttributesFitting(_:)
для применения определения размеров с помощью systemLayoutSizeFitting(_ targetSize:)
.
Однако в недавнем сеансе WWDC ( High Performance Auto Layout ) было упомянутото, что использование systemLayoutSizeFitting(_ targetSize:)
является дорогостоящим, поскольку создает новый механизм AutoLayout, который впоследствии отбрасывает его, требуя, чтобы он разрешил все ограничения, без кэширования ранее вычисленных результатов.
В моем приложении я реализовал автоматическое определение размеров вмода, предложенная в ответах.Тем не менее, производительность прокрутки ужасна в табличных списках (много строк небольшой высоты).
Очевидно, что вызов systemLayoutSizeFitting(_ targetSize:)
в UICollectionViewCell
просто для вычисления его размера является дорогостоящим и обременительным для ЦП.(поскольку и оценка размера, и фактическая разметка выполняются в главном потоке).
Каков рекомендуемый способ одновременного достижения следующих результатов
- Стойлопрокрутка без UICollectionView
- Сделать ширину ячеек фиксированной и равной
UICollectionView Width minus margins
?
Какова рекомендуемая стратегия, чтобы иметь как ячейки AutoSizing, так и высокую производительность прокрутки?