UITableView部分标题停止位置

时间:2017-07-26 10:03:42

标签: ios swift

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

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

3 个答案:

答案 0 :(得分:3)

我认为这应该有效:

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)
        }
    }
}

答案 1 :(得分:0)

您可以使用UIScrollView的属性:contentInset。表格视图的样式UITableViewStyleGrouped (.group in Swift)。 这是我这样的UI的例子: enter image description here

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

答案 2 :(得分:0)

你可以尝试这个

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);

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