【发布时间】:2012-05-19 22:38:18
【问题描述】:
我有一个可滚动的UITableView。当用户滚动UITableView 一定量然后松开手指时,我希望它从顶部滚动 50 点,而不是滚动到顶部,有效地在屏幕顶部和屏幕顶部之间留下 50 点的间隙最上面的单元格。
目前我已经实现了scrollViewDidEndDragging,但我不知道如何设置视图将滚动回的位置。
我尝试了以下方法,但效果不佳。
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
// If scrolled over 100 points
if(-100 > (double)self.tableView.contentOffset.y) {
[self.tableView setContentOffset:CGPointMake(0, -50) animated:YES];
}
}
上面的代码会导致奇怪的闪烁,就像动画同时运行一样,但我不确定。
任何帮助将不胜感激。
更新更多信息
我正在根据这篇文章实现“下拉刷新”功能: https://stackoverflow.com/a/6392145/120615
我在UITableView 的顶部添加了一个额外的UIView,当您滚动UITableView 时,UIView 会向下移动到视图中。当您从屏幕上松开手指时,UITableView 会滚动回顶部,隐藏我添加的新 UIView。
我希望希望发生的是,当您松开手指时,UITableView 会滚动回顶部,但会在距离顶部 100 点处停止(这样我就可以向用户显示活动指示器) 然后 2/3 秒后完全滚动到顶部。
【问题讨论】:
标签: ios uitableview scroll