gpt4 book ai didi

ios - 如何将导航栏的栏位置更改为顶部附在swift 3中

转载 作者:搜寻专家 更新时间:2023-11-01 05:43:53 26 4
gpt4 key购买 nike

我需要将 navController 的 navBar 的 barPosition 更改为 topAttached 类型。我尝试使用 UINavigationBarDelegate 的 position(for bar:) 方法。在 MyViewController 类中:

navigationController?.navigationBar.delegate = self

并扩展:

extension MyViewController: UINavigationBarDelegate{
func position(for bar: UIBarPositioning) -> UIBarPosition {
return .topAttached
}
}

但是不行,因为

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Cannot manually set the delegate on a UINavigationBar managed by a controller.'

那么还有其他方法可以在 swift 3 中更改 barPosition 吗?提前致谢!

最佳答案

NavigationBar.position 是一个 readonly 属性。你无法改变它。如果你想改变导航栏的框架。首先更改 UINavigationController 的框架,然后将其插入。

例子:

如果你想向下移动它:

    self.navigationController?.view.frame = CGRect(x: 0.0, y: 100.0, width: 320.0, height: 426.0)
self.navigationController?.navigationBar.frame = CGRect(x: 0.0, y: 0.0, width: 320.0, height: 44.0)

关于ios - 如何将导航栏的栏位置更改为顶部附在swift 3中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41484587/

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