iOS UITableView HeaderView在下拉时保持在UINavigationBar上

iOS UITableView HeaderView在下拉时保持在UINavigationBar上,ios,objective-c,uitableview,uiscrollview,uinavigationbar,Ios,Objective C,Uitableview,Uiscrollview,Uinavigationbar,我试图让uitableview的标题视图在下拉时粘在导航栏的底部,在向上滚动时隐藏在导航栏后面 这是我用来把它隐藏在卷轴上的东西 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFloat sectionHeaderHeight = 40; if (scrollView.contentOffset.y <= sectionHeaderHeight && scrollView.content

我试图让uitableview的标题视图在下拉时粘在导航栏的底部,在向上滚动时隐藏在导航栏后面

这是我用来把它隐藏在卷轴上的东西

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGFloat sectionHeaderHeight = 40;
    if (scrollView.contentOffset.y <= sectionHeaderHeight && scrollView.contentOffset.y >= 0) {
        scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
        NSLog(@"contentOffset: %f contentinset: %f", scrollView.contentOffset.y, scrollView.contentInset.top);
    } else if (scrollView.contentOffset.y >= sectionHeaderHeight) {
        NSLog(@"1ST contentOffset: %f contentinset: %f", scrollView.contentOffset.y, scrollView.contentInset.top);
        scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
    }
}
我一直在搞乱插图和偏移,试图让它在下拉时粘在导航栏上。下面的图像演示了正在发生的行为,当scrollview被下拉时,我不希望红色部分也随之下降

我一直在考虑其他方法,添加一个子视图,在scrollViewDidScroll期间更改其位置和高度可能是一个选项,但我不确定如何将其分配给uinavigationbar而不是scrollview。我不知道如何在这个过程中动态地改变它的高度

我还发现: 如果禁用uinavigationbar隐藏功能,它会执行我希望它执行的操作,但在使用uitableviewcontroller和不透明导航栏时会出现问题

有人能给我指出我可能做的事情的正确方向吗,或者如果有一个我不知道的现有解决方案


我最终找到了一个有效的解决方案。只要uinavigationbar设置为非半透明,这似乎效果很好