使用滚动视图使导航透明时遇到麻烦

时间:2018-07-27 19:56:17

标签: ios swift xcode

我有一个View-ScrollView-View,无法使导航完全透明。我为层次结构中的所有3个部分设置了0,0,0,0约束。

在我的ViewController中,我有以下代码:

override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

    self.navigationController?.setNavigationBarHidden(true, animated: animated)
    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
    self.navigationController?.navigationBar.shadowImage = UIImage()
    self.navigationController?.navigationBar.isTranslucent = true
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    self.navigationController?.setNavigationBarHidden(false, animated: animated)
}

但是,这会缩短白色导航,但不会使其对顶部透明,例如:enter image description here

我在这里上传了测试项目-https://github.com/cluelessoodles/testScrollView

3 个答案:

答案 0 :(得分:1)

您将视图固定在安全区域而不是视图的顶部。确保在创建顶级约束时选择了顶层视图,而不是安全区域:

enter image description here

如果您希望将其延伸到iPhone X屏幕的最底部,这也适用于底部约束。

答案 1 :(得分:0)

设置约束条件时,请确保未在“保存区域”上而是在父视图上设置约束,如果我正确理解了您的问题,这应该可以解决问题

答案 2 :(得分:0)

我了解的是您希望状态栏也“透明”。为此,请确保相对于主视图(对于滚动视图和您在滚动内部添加的视图)将约束设置为TOP = 0。另外,通过这样做,状态栏后面将具有可滚动的内容,并且我不确定这是否是您要查找的行为。