触摸时暂停UIScrollView的滚动

时间:2012-05-26 01:26:58

标签: ios uitableview uiscrollview scroll

我有一个UIScrollView,它是一个快速更新的Twitter流,跟随某个搜索词。每秒处理大量推文。我希望用户能够触摸桌面视图中的任何位置,并在添加新推文时停止滚动,以便用户可以停止并阅读单个推文。

目前,我正在添加如下推文:

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

当添加推文时,滚动视图的位置被锁定,因此整个视图向下移动以容纳推文。以如此快的速度,这使得屏幕上的推文以难以辨认的速度放大。理想情况下,我想这样做,以便如果与TableView有联系(由覆盖它的UIButton完成),则滚动定位将锁定到视图中的该行。什么是解决这个问题的最佳方法?

1 个答案:

答案 0 :(得分:0)

每次添加推文时,都可以通过更改表格视图的滚动位置来调整其高度。为此,请使用setContentOffset:animated:。使用NO animated参数即可立即进行更改并传递与推文高度相关的CGPoint。因此,如果推文的高度为50,那么请执行以下操作:

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

这会将表格视图向上滚动50,这意味着用户必须滚动才能查看刚刚添加的推文。