Dan*_*son 25 iphone cocoa-touch uitableview uiscrollview
我有一个UITableView,当用户触摸分段控件时,其数据源和委托在几个自定义数据源对象之间切换(在应用程序商店应用程序中认为"Top Paid"与"Top Free").
每个数据源对象保存其最后一个滚动内容偏移量,并在它成为表视图的活动数据源时通过执行以下操作来恢复它:
tableView.contentOffset = CGPointMake(0, savedScrollPosition);
Run Code Online (Sandbox Code Playgroud)
当用户在桌子静止时切换数据源时,这很有效,但如果用户在桌子仍在移动(即减速)时点击分段控件,则表视图继续从旧偏移减速,有效地覆盖了我的contentOffset赋值.
有没有办法在设置contentOffset时强制表视图停止滚动/减速,或者使这种类型的可切换数据源表视图工作的其他方法?
Cor*_*oyd 19
你尝试过这两种方法吗?
它们实际上适用于"滚动"而不仅仅是内容的偏移.
[self.tableView scrollToRowAtIndexPath:savedIndexPath atScrollPosition:UITableViewScrollPositionTop animated:NO];
Run Code Online (Sandbox Code Playgroud)
要么:
[self.tableView scrollRectToVisible:savedFrame animated:NO];
Run Code Online (Sandbox Code Playgroud)
它们实际上应该影响滚动和扩展表的加速度,而不仅仅是屏幕上可见的内容.
小智 5
这对我很有用:
if (self.tableView.isDecelerating) {
NSArray *paths = [self.tableView indexPathsForVisibleRows];
[self.tableView scrollToRowAtIndexPath:[paths objectAtIndex:0] atScrollPosition:UITableViewScrollPositionTop animated:NO];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34019 次 |
| 最近记录: |