24. Почему прокрутка UITableView может идти прерывисто?Теория
Дополнительные вопросы
1. Что проверять, если профайлер времени не показывает долгий метод?
2. Как убрать лишнее смешивание слоёв и оставить полупрозрачность?
1. Что проверять, если профайлер времени не показывает долгий метод?
2. Как убрать лишнее смешивание слоёв и оставить полупрозрачность?
Кадр прокрутки не успевает собраться на главном потоке или на видеокарте. Частые причины: тяжёлые cellForRow и layoutSubviews, декодирование картинки в момент показа, глубокий Auto Layout, тень без shadowPath и полупрозрачные слои, которые смешиваются каждый кадр.
1. Смотреть не один долгий метод, а число коммитов, смешивание и декодирование картинок. Это видно в Core Animation и в Time Profiler как россыпь коротких вызовов. Кадр может не успевать, хотя ни одна функция сама по себе не выглядит тяжёлой.
2. Смешивание убирают у слоя, который едет каждый кадр: у ячейки непрозрачный фон. Полупрозрачный вид рисуют заранее в картинку, один раз. Дальше слой непрозрачный и просто показывает эту картинку.