UIScrollView标题视图?

时间:2014-11-15 20:04:05

标签: ios uiview uiscrollview

我有一个控制器,顶部有一个UIView,带有一些按钮和标签。在下面我有一个包含内容的UIScrollView。我希望顶部的UIView基本上工作并显示为此滚动视图的标题,类似于UITableViewHeader。我使用scrollViewDidScroll委托方法和contentOffset尝试让它工作,但我似乎无法得到正确的数学。

这个想法是滚动视图向上滚动"标题"将相对于内容向上滚动。它甚至可以滚动屏幕。然后当您向下滚动时,它将粘在滚动视图的顶部。就像我说的,与UITableViewHeader非常相似的功能。

任何有关为此计算数学的帮助都将非常感谢!

这是我到目前为止所做的:

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGRect updatedSegmentFrame = self.segmentedControlContainerView.bounds;
    CGRect updatedTableViewFrame = self.viewControllerThree.tableView.frame;

    CGFloat topEdge = -scrollView.contentOffset.y;

    if (topEdge >= 0) {
        updatedSegmentFrame.origin.y = 0;
    }
    else {
        updatedSegmentFrame.origin.y = -scrollView.contentOffset.y;
    }

    self.viewControllerThree.tableView.frame = updatedTableViewFrame;
    self.segmentedControlContainerView.frame = updatedSegmentFrame;
}

此代码移动外部"标题视图"以及UIScrollView,一切都按预期工作。唯一缺少的是,当您向上滚动时,UIScrollView将需要变大以抵消屏幕上的headerView。

1 个答案:

答案 0 :(得分:1)

以下是我为标题提供的解决方案,其行为类似于您所描述的内容:FixedHeaderTableView

在你的情况下,你会传入0作为visibleHeaderHeight参数。