В самом начале мы использовали для DI фреймворк Typhoon, но в ходе оптимизации времени запуска приложения выяснили, что разрешение зависимостей занимает непозволительно долгое время на старте приложения (единицы секунд на слабых устройствах). Поэтому мы перешли на ручной DI через property-based injection.
Скажите, а какую версию Typhoon вы использовали, до того, как отказались от него? Вроде начиная с четвертой версии разработчики оптимизировали время разрешения зависимостей.
4-5 новостей — это 4-5 ячеек с различной разметкой и reuseIdentifier.
20 вью — это в одной ячейке заголовка новости? Если так — то очевидны проблемы с интерфейсом.
Я сам сейчас делаю приложение с выводом множества ячеек с 3-5 label различной высоты. Использую Masonry и авторасчет высот. За раз показывается около 40-60 ячеек. Не тормозит даже на iPhone 5, на 4s — слегка.
На счет скорости вполне возможно, но хотелось бы увидеть приблизительный лэйаут на котором может сильно тормозить расчет высот.
Но как быть с ориентацией, и случаями, когда от размера зависит положение и размер элементов? Констреинты очень сильно в таких случаях помогают.
Статья по-большей части даже вредная. Как минимум, надо указать, что так никто не делает с тех пока, как появился autolayout.
В iOS 6-7 задают constraints и высчитывают высоту contentView методом -systemLayoutSizeFittingSize.
В iOS 7 появился доп. метод делегата таблицы -estimatedHeightForRowAtIndexPath, для приблизительного указания высоты.
Ну и счастливчики, разрабатывающие под iOS8+ могу использовать динамический подсчет величины просто указав
Скажите, а какую версию Typhoon вы использовали, до того, как отказались от него? Вроде начиная с четвертой версии разработчики оптимизировали время разрешения зависимостей.
20 вью — это в одной ячейке заголовка новости? Если так — то очевидны проблемы с интерфейсом.
Я сам сейчас делаю приложение с выводом множества ячеек с 3-5 label различной высоты. Использую Masonry и авторасчет высот. За раз показывается около 40-60 ячеек. Не тормозит даже на iPhone 5, на 4s — слегка.
Но как быть с ориентацией, и случаями, когда от размера зависит положение и размер элементов? Констреинты очень сильно в таких случаях помогают.
Можно кэшировать уже рассчитанные высоты и в -estimatedHeightForRowAtIndexPath их возвращать.
TableView сам рассчитает размер ячейки, достаточный для ее отображения.
В iOS 6-7 задают constraints и высчитывают высоту contentView методом -systemLayoutSizeFittingSize.
В iOS 7 появился доп. метод делегата таблицы -estimatedHeightForRowAtIndexPath, для приблизительного указания высоты.
Ну и счастливчики, разрабатывающие под iOS8+ могу использовать динамический подсчет величины просто указав
Хотя это не избавляет от проблем с многострочными UILabel. В довесок Apple не исправила баг с скачущими высотами ячеек при прокрутке вверх (тык).