2012-05-26 10 views
0

У меня есть UIScrollView, который является быстро обновляемым потоком Twitter после определенного поискового запроса. Большое количество твитов обрабатывается в секунду. Я хотел бы, чтобы пользователь мог касаться в любом месте табличного вида, и чтобы он переставал прокручиваться по мере добавления новых твитов, чтобы пользователь мог остановить и прочитать отдельный твит.Пауза прокрутки UIScrollView при касании

В настоящее время, я добавляю чириканье так:

[self.tweets insertObject:model atIndex:0]; 
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationTop]; 

При добавлении твит, положение изображения скроллинга блокируется, и из-за этого весь вид смещается вниз, чтобы разместить сообщение. В таких быстрых темпах это делает твиты на экране масштабируемыми в неразборчивом темпе. В идеале я хотел бы сделать так, чтобы при контакте с TableView (выполняемом UIButton, охватывающим его), позиционирование прокрутки становится заблокированным для этой строки в представлении. Каков наилучший способ приблизиться к этому?

+0

Если режим прокрутки заблокирован, как увеличить твиты? – Barjavel

+0

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

ответ

0

Каждый раз, когда вы добавляете твит, учитывайте его высоту, изменяя положение прокрутки в виде таблицы. Для этого используйте setContentOffset:animated:. Используйте NO для параметра animated, чтобы сделать изменение мгновенным и передать CGPoint, что имеет отношение к высоте твита. Так что, если чирикать имеет высоту 50, то сделать что-то вроде:

[tableView setContentOffset:CGPointMake(tableView.contentOffset.x, tableView.contentOffset.y -50) animated:NO]; 

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

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