Вы можете предварительно создать индикатор занятости и установить его как скрытый в каждой ячейке таблицы. Если вы пользуетесь преимуществами кэширования ячеек UITableView, то в любой момент времени вокруг будет только несколько ячеек, поэтому накладные расходы не будут слишком большими. Как только вы получите событие выбора из таблицы, откройте индикатор и анимируйте его, прежде чем делать что-либо еще.
Я также обнаружил небольшое увеличение скорости при запуске и остановке анимации вращения, установив / сняв сам скрытый флаг (и выполняя его до запуска анимации) вместо использования функции «автоматическое скрытие при остановке». Это могли быть только мои глаза, играющие трюки, но это казалось молниями.