Xcode setNavigationBarHidden向上移动视图

时间:2018-03-10 19:10:19

标签: ios swift xcode

为了解释我的问题,我将向您展示所发生情况的截图 之后,我将展示故事板和我使用的代码 实际上有两个问题,我认为这些问题是相关的。

我的应用UI看起来如下:

enter image description here

向下滚动时,我会收到以下行为:

enter image description here

导航栏和标签栏消失,这是所需的行为 注意红色条下面的白色条,这不是所希望的行为,我不知道它来自哪里。

修改 将NewsfeedPageCell变为蓝色时,我得到以下信息:

enter image description here

滚动回到顶部时,结果为:

enter image description here

突然间,所提供的新闻源位置过高。

我的故事板如下所示:

enter image description here

呈现的新闻源是一个可重复使用的视图,它是从xib加载的 编辑:新闻源单元格是从xib加载的可重用视图。 据我所知,我在故事板中添加了所有必需的锚点。

我的Newsfeed类的代码,用于处理导航栏和滚动标签栏的可见性:

func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
    // Remove navigationbar and tabbar on scroll
    if(velocity.y > 0) {
        parentViewController?.navigationController?.setNavigationBarHidden(true, animated: true)
        parentViewController?.tabBarController?.hideTabBarAnimated(hide: true)
    } else {
        parentViewController?.navigationController?.setNavigationBarHidden(false, animated: true)
        parentViewController?.tabBarController?.hideTabBarAnimated(hide: false)
    }
}

我一直坚持这个问题 任何帮助表示赞赏,如果您需要更多信息,请询问。

编辑:约束如下:

enter image description here

新闻传播寻呼机的限制:

enter image description here

Edit2:隐藏调试视图导航栏:

enter image description here

隐藏导航栏的调试视图:

enter image description here

2 个答案:

答案 0 :(得分:0)

看起来菜单的顶部锚点是状态栏。

尝试:

  1. 将MenuBar.top更改为superview.top,而不是Safe Layout.tom

  2. 快速修复:

     override viewDidLoad() {
    
           super.viewDidLoad()
          view.backgroundColor = .red /// or the MenuBar backgroundColor tiny color
       }
    

答案 1 :(得分:0)

我认为你实现了一切正确的事情。 如果你遇到问题设备ios 11.0+然后问题是UIScrollViewContentInsetAdjustmentBehavior隐藏导航栏,这是UIScollView行为

你需要设置

self.collectionView.contentInsetAdjustmentBehavior = .never

它的默认值是.automatic,因此在状态栏后滚动开始。