Причина в том, что UITableView ожидает, что будет отвечать за все свои подпредставления в целях макета. IB не позволяет вам помещать подпредставления в UITableView, потому что, хотя это технически возможно , оно не поддерживается .
В любом случае индикатор активности будет прокручиваться вверх и вниз вместе с таблицей, поэтому даже если вы добавите его в нужном месте, если таблица прокручивается вниз, вы можете прокрутить его за пределы экрана, если вы не будете осторожны отключение взаимодействия с пользователем во время отображения индикатора.
Когда мне нужно показать на экране общий индикатор активности, я использую собственную версию UIProgressHUD. UIProgressHUD - это закрытый внутренний класс, поэтому я им не пользуюсь, я просто создал собственный, который делает то же самое. Он создает вид с черным фоном с непрозрачностью 50% и закругленными углами, и я добавляю к нему индикатор прогресса и, возможно, метку, а затем просто добавляю этот вид в главное окно. Таким образом, нет необходимости в другом UIView для инкапсуляции обоих, и вы не помещаете его в таблицу, что не поддерживается (если вы не поместите его в ячейку в табличном представлении).