我需要将 navController 的 navBar 的 barPosition 更改为 topAttached 类型。我尝试使用UINavigationBarDelegate 的position(for bar:)方法。在 MyViewController 类中:
navigationController?.navigationBar.delegate = self
Run Code Online (Sandbox Code Playgroud)
并延伸:
extension MyViewController: UINavigationBarDelegate{
func position(for bar: UIBarPositioning) -> UIBarPosition {
return .topAttached
}
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法在控制器管理的 UINavigationBar 上手动设置委托。”
那么还有其他方法可以改变 swift 3 中的 barPosition 吗?提前致谢!
SNa*_*ula -1
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2479 次 |
| 最近记录: |