0

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

目前,我正在添加这样的推文:

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

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

4

1 回答 1

0

每次添加推文时,都会通过更改表格视图的滚动位置来考虑其高度。要做到这一点,请使用setContentOffset:animated:. 用于参数以使更改即时并传递NO与推文高度相关的 a。因此,如果推文的高度为 50,则执行以下操作:animatedCGPoint

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

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

于 2012-05-26T02:34:46.963 回答