Mar*_*son 43 uitableview ios ios7
在IOS6中,我有以下代码滚动到UITableView的顶部
[tableView setContentOffset:CGPointZero animated:YES];
Run Code Online (Sandbox Code Playgroud)
在IOS7中,这不再起作用了.表视图不会完全滚动到顶部(但几乎).
idS*_*tar 127
在iOS7中,默认情况下,整个屏幕UITableView和UIScrollView组件调整内容并滚动指示符插入,以使一切正常.但是,正如您已经注意到CGPointZero不再代表将您带到视觉"顶部"的内容偏移.
请改用:
self.tableView.contentOffset = CGPointMake(0, 0 - self.tableView.contentInset.top);
Run Code Online (Sandbox Code Playgroud)
在这里,您不必担心是否有部分或行.您也不会告诉Table View定位第一行,然后想知道为什么它没有显示所有非常高的表头视图等.
Har*_*nan 23
试试这个:
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
Run Code Online (Sandbox Code Playgroud)
cas*_*ash 22
基于@Markus Johansson接受的答案,这里是Swift代码版本:
func scrollToTop() {
if (self.tableView.numberOfSections > 0 ) {
let top = NSIndexPath(row: Foundation.NSNotFound, section: 0)
self.tableView.scrollToRow(at: top as IndexPath, at: .top, animated: true);
}
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*son 17
通过这里的一些其他答案的帮助,我设法让它工作.为了避免崩溃,我必须首先检查是否有一些部分.如果第一部分没有行,则NsNotFound可用作行索引.希望这应该是放在UITableViewController中的通用函数:
-(void) scrollToTop
{
if ([self numberOfSectionsInTableView:self.tableView] > 0)
{
NSIndexPath* top = [NSIndexPath indexPathForRow:NSNotFound inSection:0];
[self.tableView scrollToRowAtIndexPath:top atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42924 次 |
| 最近记录: |