UITableView 节标题停止位置

Posted

技术标签:

【中文标题】UITableView 节标题停止位置【英文标题】:UITableView Section Header Stop Position 【发布时间】:2017-07-26 10:03:42 【问题描述】:

是否可以给 ui tableview 中的节标题一个偏移量以编程方式停止?

那么,节标题从顶部停止 100 像素?

【问题讨论】:

查看***.com/questions/23969587/… 【参考方案1】:

我认为这应该可行:

override func scrollViewDidScroll(_ scrollView: UIScrollView)

    super.scrollViewDidScroll(scrollView)
    let inset: CGFloat = 73
    if scrollView.contentOffset.y < inset && scrollView.contentOffset.y > 0 
        scrollView.contentInset = UIEdgeInsets(top: scrollView.contentOffset.y, left: 0, bottom: 0, right: 0)
     else 
        if scrollView.contentOffset.y < 0 
            scrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
         else 
            scrollView.contentInset = UIEdgeInsets(top: inset, left: 0, bottom: 0, right: 0)
        
    

【讨论】:

【参考方案2】:

你可以试试这个

CGFloat newViewHeight = 40;

UIView *newView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.bounds.size.width, newViewHeight)];

self.tableView.tableHeaderView = newView;
self.tableView.contentInset = UIEdgeInsetsMake(-newViewHeight, 0, 0, 0);

部分标题现在将像任何常规单元格一样滚动。

【讨论】:

【参考方案3】:

您可以使用 UIScrollView 的属性:contentInset。以及表格视图的样式UITableViewStyleGrouped (.group in Swift)。 这是我的此类 UI 示例:

如果您想避免标题移动,请将Bounce Vertical 属性设置为 NO。

【讨论】:

感谢您的评论,UIEdgeInsets 用标题做了正确的事情,但内容也得到了偏移量,但我只想早点停止标题,因为 tableview 在透明视图后面跨度>

以上是关于UITableView 节标题停止位置的主要内容,如果未能解决你的问题,请参考以下文章

UITableView, setContentOffset 动画:NO 不会在 iPad 上滚动

第一节标题固定在顶部的 UITableView

UITableViewCell textLabel 在选择时改变位置

UIViewController 内的 UITableView? [关闭]

水平 UITableView 中的垂直 UITableView

UITableView 复选标记重复