24. Почему прокрутка UITableView может идти прерывисто?Теория

Дополнительные вопросы

1. Что проверять, если профайлер времени не показывает долгий метод?

2. Как убрать лишнее смешивание слоёв и оставить полупрозрачность?

Темы

Кадр прокрутки не успевает собраться на главном потоке или на видеокарте. Частые причины: тяжёлые cellForRow и layoutSubviews, декодирование картинки в момент показа, глубокий Auto Layout, тень без shadowPath и полупрозрачные слои, которые смешиваются каждый кадр.

Дополнительные вопросы

1. Смотреть не один долгий метод, а число коммитов, смешивание и декодирование картинок. Это видно в Core Animation и в Time Profiler как россыпь коротких вызовов. Кадр может не успевать, хотя ни одна функция сама по себе не выглядит тяжёлой.

2. Смешивание убирают у слоя, который едет каждый кадр: у ячейки непрозрачный фон. Полупрозрачный вид рисуют заранее в картинку, один раз. Дальше слой непрозрачный и просто показывает эту картинку.