2012-03-01 4 views
0

У меня есть стандартный UITable. Когда пользователь прокручивает строки и затем нажимает на одну из ячеек; они будут переведены в другое представление. Будет некоторое время процесса от крана ячейки до нового представления. Я хотел бы отобразить UIActivityIndicator в представлении, которое над центром UITable. Я не уверен, как получить видимый центр UITable.Как получить видимый центр UITable

код у меня есть:

myView.center = self.tableView.center; 

Ставит его в центре UITable, пока я не начать прокрутку дальше и дальше вниз. Затем индикатор UIActivityIndicator остается наверху, поэтому он выглядит как UITableView.center, не представляющий «видимый центр».

Любые советы о том, как я могу это достичь?

Спасибо! Блошиный

+0

Лично я думаю, что предпочтительнее сразу перейти к новому виду, а затем показать индикатор активности, если он должен выполнить дополнительную обработку, прежде чем он будет готов к использованию. – UIAdam

ответ

1

Есть два пути достижения этой цели.

Либо добавить вид индикатора активности на ту же точку зрения, держащего tableView и тогда они могут иметь один и тот же центр:

UIView* superview = [tableView superview]; 
yourActivityIndicator.center = tableView.center; 
[superview addSubview:yourActivityIndicator]; 

или вы решили добавить вид монитора к Tableview, но тогда центр это представление должно быть рассчитано и будет зависеть от размера индикатора.

CGSize tSize = tableView.frame.size; 
CGSize aSize = yourActivityIndicator.frame.size; 
yourActivityIndicator.center = CGRectMake(
    (tSize.width-aSize.width)*0.5, 
    (tSize.height-aSize.height)*0.5, 
    aSize.width, 
    aSize.height); 
[tableView addSubview:yourActivityIndicator]; 
1

Поместите индикатор активности в материнской Tableview, вместо того чтобы в самом Tableview, то она не будет прокручиваться с табличном

+0

Это может сделать еще проще: https://github.com/jdg/MBProgressHUD – UIAdam

Смежные вопросы