从子滚动视图正确折叠父导航控制器

时间:2018-07-15 18:55:48

标签: ios swift uiscrollview uinavigationcontroller autolayout

我有一个Navigation控制器,该控件具有一个View控制器的Page控制器(内部有一个集合视图)。

当我滚动集合时,导航栏必须缩小。但是当它处于默认位置并向下滚动时,会发生一些奇怪的事情(请参见gif)。

scroll problem

我创建了一个委托,该委托告诉主控制器哪个是scrollview的偏移量。

//CollectionViewController
func scrollViewDidScroll(_ scrollView: UIScrollView) {
        delegate?.didScrollViewPosition(yOffset: scrollView.contentOffset.y)
    }

//Navigation view controller
extension ContainerViewController: CollectionViewControllerDelegate {

    func didScrollViewPosition(yOffset: CGFloat) {
       if (yOffset <= 52 && yOffset >= 0) {
            let bounds = self.navigationController!.navigationBar.bounds
            self.navigationController?.navigationBar.frame = CGRect(x: 0, y: 0, width: bounds.width, height: 96 - yOffset)
       }
    }   

}

0 个答案:

没有答案