为了解释我的问题,我将向您展示所发生情况的截图 之后,我将展示故事板和我使用的代码 实际上有两个问题,我认为这些问题是相关的。
我的应用UI看起来如下:
向下滚动时,我会收到以下行为:
导航栏和标签栏消失,这是所需的行为 注意红色条下面的白色条,这不是所希望的行为,我不知道它来自哪里。
修改 将NewsfeedPageCell变为蓝色时,我得到以下信息:
滚动回到顶部时,结果为:
突然间,所提供的新闻源位置过高。
我的故事板如下所示:
呈现的新闻源是一个可重复使用的视图,它是从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)
}
}
我一直坚持这个问题 任何帮助表示赞赏,如果您需要更多信息,请询问。
编辑:约束如下:
新闻传播寻呼机的限制:
Edit2:隐藏调试视图导航栏:
隐藏导航栏的调试视图:
答案 0 :(得分:0)
看起来菜单的顶部锚点是状态栏。
尝试:
将MenuBar.top更改为superview.top,而不是Safe Layout.tom
快速修复:
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,因此在状态栏后滚动开始。