作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我需要将 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/
我是一名优秀的程序员,十分优秀!