gpt4 book ai didi

ios - 设置 UITableViewHeaderFooterView 边距值(滚动时)

转载 作者:行者123 更新时间:2023-11-29 01:34:41 26 4
gpt4 key购买 nike

我构建了一个 UITableView,其中包含可以展开特定部分的部分标题。我正在为 UITableViewHeaderView 使用 .xib 文件中的自定义 View 。我想设置 HeaderView 的边距值,使其不是全宽并在向下滚动时保持在顶部(不是全高)。

  1. 正如您在动画中看到的那样, View 具有全宽 - 是否可以在 HeaderView 和屏幕边缘之间留出一些空间来为页眉添加边距.

  2. 如果 UITableView 滚动,我想降低粘性标题的高度 - 这样屏幕顶部就只有按钮的文本可见。我已经从 UIScrollView 实现了以下委托(delegate)命令,它工作正常,但它减少了第一个 HeaderView 的边距,以便它移动到导航栏后面(参见动画)-我怎样才能避免这种情况?

    -(void)scrollViewDidScroll:(UIScrollView *)scrollView 
    {
    CGFloat sectionHeaderHeight = 20;
    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);
    }
    }

    Capture

最佳答案

  1. 您可以在标题 View 中放置一个带有边距的 subview 。
  2. 设置高度当然是可能的,并且可以通过设置框架来完成,但您也可以将导航栏设置为非半透明,这将节省大量编码。

    [self.navigationController.navigationBar setTranslucent:NO];

如果您想更改高度,您的代码将类似于:

CGRect frame = header.frame;
frame.size.height = 44;
header.frame = frame;
[self.tableView setTableHeaderView:header];

关于ios - 设置 UITableViewHeaderFooterView 边距值(滚动时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33099028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com