我有一个UIScrollView,它是一个快速更新的Twitter流,跟随某个搜索词。每秒处理大量推文。我希望用户能够触摸桌面视图中的任何位置,并在添加新推文时停止滚动,以便用户可以停止并阅读单个推文。
目前,我正在添加如下推文:
[self.tweets insertObject:model atIndex:0];
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationTop];
当添加推文时,滚动视图的位置被锁定,因此整个视图向下移动以容纳推文。以如此快的速度,这使得屏幕上的推文以难以辨认的速度放大。理想情况下,我想这样做,以便如果与TableView有联系(由覆盖它的UIButton完成),则滚动定位将锁定到视图中的该行。什么是解决这个问题的最佳方法?
答案 0 :(得分:0)
每次添加推文时,都可以通过更改表格视图的滚动位置来调整其高度。为此,请使用setContentOffset:animated:
。使用NO
animated
参数即可立即进行更改并传递与推文高度相关的CGPoint
。因此,如果推文的高度为50,那么请执行以下操作:
[tableView setContentOffset:CGPointMake(tableView.contentOffset.x, tableView.contentOffset.y -50) animated:NO];
这会将表格视图向上滚动50,这意味着用户必须滚动才能查看刚刚添加的推文。