• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - UITableview 在重新加载时滚动到顶部太高?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 14:54:07 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在使用 scrollRectToVisible:

[self.tblArticle scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES];

和/或 setContentOffset:

NSIndexPath* top = [NSIndexPath indexPathForRow:NSNotFound inSection:0];
    [self.tblArticle scrollToRowAtIndexPath:top atScrollPosition:UITableViewScrollPositionTop animated:YES];

和/或这个:

[self.tblArticle setContentOffset: CGPointZero animated: YES];

重新加载后(尝试)滚动到我的 tableView 的顶部。但有时它会太高,以至于我看到 table 上方有太多的空白。我的表格有一个位于单元格行上方的标题。 当我向下滚动一点然后开始重新加载时,它变得太高了。如果我在上面,滚动很好。但是我在重新加载之前得到的越低,标题上方可见的空白就越多。 现在我正在计算我有多低,然后我设置如下:

CGFloat height = 0;
    if(self.selectedCategoryID > 2)
        height = 250;
    [self.tblArticle scrollRectToVisible:CGRectMake(0, height, 1, 1) animated:YES];

这太糟糕了。感谢您的任何建议!

编辑我正在像这样使用 uitableview 重新加载:

// Reload table
[self.tblArticle reloadData];

This is the wanted result

But I get this instead...



Best Answer-推荐答案


试试这个:

[_mainTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [_mainTableView setContentOffset:CGPointZero animated:YES];
});

关于ios - UITableview 在重新加载时滚动到顶部太高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35639645/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap