滚动 UITableView 标题?

发布于 2024-12-28 15:34:20 字数 112 浏览 1 评论 0原文

我有一个自定义 UITableView 标头,我希望能够在表格顶部上方滚动。通常,标题会粘在表格的顶部,是否不可能以某种方式更改滚动能力,以便它可以超越该范围并与表格中的单元格一起滚动?

谢谢。

I have a custom UITableView header which I want to be able to scroll above the top of the table. Normally the header would stick to the top of the table, is it not possible to somehow change to scrolling ability so that it can go beyond that and scrolls with the cells in the table?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

枕花眠 2025-01-04 15:34:20

如果这是您想要的行为,只需将 header 作为第一个单元格的内容即可。可以定制您想要的任何特定单元格。 UITableViewDelegate 文档将在这方面为您提供帮助。

PS:使用 tableView 标头的全部目的是使其粘在窗口顶部。

编辑:如果您必须按照自己想要的方式进行操作,那么您可以尝试以下操作:通过设置 contentOffset< 将 tableView 向下移动一点/代码>。例如: myTableView.contentOffset= CGPointMake(0,heightOfYourView) 。现在在顶部添加 yourView

Well if that is the desired behavior you want, just put the header as the first cell's content. It is possible to customize any particular cell you want. UITableViewDelegate documentaion will help you in that matter.

PS: the whole point of using tableView header is to make it stick to the top of the window.

EDIT: If it is necessary that you have to do the way you want, then you can try this: move your tableView a little down by setting its contentOffset. eg: myTableView.contentOffset= CGPointMake(0,heightOfYourView) . Now add yourView at the top

云柯 2025-01-04 15:34:20
myTableView.tableViewHeader = myCustomTableHeaderView;

这会将 myCustomTableHeaderView 设置为表格视图的标题,并且它将随表格视图滚动。

myTableView.tableViewHeader = myCustomTableHeaderView;

This would set myCustomTableHeaderView as the header of your table view and it would scroll with the table view.

ゝ杯具 2025-01-04 15:34:20

通过对索引 0 的部分实现 tableView:viewForHeaderInSection:,您可以将标题作为第一个部分,该部分在滚动时应该消失。这样,它就不是整个 UITableView 的标题。

By implementing tableView:viewForHeaderInSection: for section of index 0, you can instead have the header as the first section that should disappear when it scrolls. In this way, it's not a header for the whole UITableView.

蓝色星空 2025-01-04 15:34:20

如果整个表格只有一个标题,难道不能只设置 tableHeaderView 属性吗?

If you only have one header for the whole table, can't you just set the tableHeaderView property?

少跟Wǒ拽 2025-01-04 15:34:20

您可能像我一样一直在搜索 tableHeaderView 属性。有关详细信息,请参阅这个问题

You might, like me, have been searching for the tableHeaderView property. See this SO question for more info.

雨落□心尘 2025-01-04 15:34:20

您应该使用 Grouped TableView Style 并在 ViewDidLoad 方法中添加以下代码行:

myTableView.backgroundColor=[UIColor clearColor];
myTableView.opaque=NO;
myTableView.backgroundView=nil;

另外,在 nib 文件中,您应该清除分组表的背景颜色;

You should use Grouped TableView Style and in your ViewDidLoad method, add following line of code:

myTableView.backgroundColor=[UIColor clearColor];
myTableView.opaque=NO;
myTableView.backgroundView=nil;

Also in nib file, you should clear background color of grouped table;

递刀给你 2025-01-04 15:34:20
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGFloat sectionHeaderHeight = 40;//Change as per your table header hight
    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);
    }
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGFloat sectionHeaderHeight = 40;//Change as per your table header hight
    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);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文