gpt4 book ai didi

swift - ios 11 自定义导航栏位于状态栏下方

转载 作者:IT王子 更新时间:2023-10-29 05:25:08 29 4
gpt4 key购买 nike

刚刚下载了 xcode 9,我遇到了这个奇怪的问题,在 ios 11 上,我的自定义导航栏看起来只有一半大小,并且位于状态栏下方,在 ios 10 上工作正常。

这是我的代码

let newNavbar: UINavigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: 64))
let navItem = UINavigationItem()

//create and assign the items

newNavbar.setItems([navItem], animated: false)
view.addSubview(newNavbar)

这里是截图,左边是ios11,右边是ios10,

enter image description here

最佳答案

您的代码总是错误的。您不应该自己设置手动添加的导航栏的高度或将其放置在 View 的顶部。您应该将导航栏的顶部固定到状态栏的底部(例如安全区域的顶部)并给它一个委托(delegate),以便您可以使用 UIBarPositioningDelegate 机制将其位置设置为 .topAttached,这将使它正确地拉伸(stretch)到屏幕的顶部。

(但您也应该问自己为什么您要手动添加导航栏。通常没有理由不将您的 View Controller 包装在 UINavigationController 中——即使您不打算这样做做任何实际的导航——只是为了获得导航栏,以及它的所有自动管理。)

关于swift - ios 11 自定义导航栏位于状态栏下方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46326554/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com