Почему я не могу разместить UIActivityIndicatorView в UITableView с помощью Interface Builder? - PullRequest
1 голос
/ 07 февраля 2010

Я могу разместить UIActivityIndicatorView в UIWindow или UIView с помощью Interface Builder, как показано ниже.
alt text
(источник: hatena.ne.jp )

Но я не могу поместить UIActivityIndicatorView в UITableView с помощью Interface Builder.
В чем причина? Есть ли способы?
Я могу поместить его в UITableView программно.
alt text
(источник: hatena.ne.jp )

Ответы [ 2 ]

2 голосов
/ 07 февраля 2010

Сделайте UITableView и UIActivityIndicatorView оба подпредставления родителя UIView. Затем вы можете поместить индикаторный вид поверх табличного.

1 голос
/ 07 февраля 2010

Причина в том, что UITableView ожидает, что будет отвечать за все свои подпредставления в целях макета. IB не позволяет вам помещать подпредставления в UITableView, потому что, хотя это технически возможно , оно не поддерживается .

В любом случае индикатор активности будет прокручиваться вверх и вниз вместе с таблицей, поэтому даже если вы добавите его в нужном месте, если таблица прокручивается вниз, вы можете прокрутить его за пределы экрана, если вы не будете осторожны отключение взаимодействия с пользователем во время отображения индикатора.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...