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

ios - 更改 UITableView 节标题的默认滚动行为

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

我有一个包含两个部分的 UITableView。这是一个简单的表格 View 。我正在使用 viewForHeaderInSection 为这些标题创建自定义 View 。到目前为止,一切顺利。

默认的滚动行为是当遇到一个部分时,部分标题保持锚定在导航栏下方,直到下一个部分滚动到 View 中。

我的问题是:我可以更改默认行为,以使节标题不会停留在顶部,而是在导航栏下方滚动其余节行?

我是否遗漏了一些明显的东西?

谢谢。



Best Answer-推荐答案


我解决这个问题的方法是根据UITableViewControllerDelegate中的contentInset调整contentOffset(扩展UIScrollViewDelegate) 像这样:

- (void)scrollViewDidScrollUIScrollView *)scrollView {
       CGFloat sectionHeaderHeight = 40;
   if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) {
       scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
   } else if (scrollView.contentOffset.y>=sectionHeaderHeight) {
       scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
   }
}

这里唯一的问题是它在滚动回到顶部时会失去一点反弹。


{注意:“40”应该是您的第 0 节标题的确切高度。如果您使用大于第 0 节标题高度的数字,您会看到手指感觉受到影响(尝试像“1000”,您会看到弹跳行为在顶部有点奇怪)。如果数字与您的第 0 节标题高度匹配,则手指感觉似乎是完美或接近完美。}

关于ios - 更改 UITableView 节标题的默认滚动行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4600816/

回复

使用道具 举报

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

本版积分规则

关注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