我想将 UINavigationController 子类化以包含几种类型的 header ,这些 header 可以从一种转换到另一种。我正在考虑设计中的一些事情:
- 我应该如何管理子 Controller View 的大小?将它们限制在每种 header 的底部似乎很笨拙,并且在转换期间难以管理。
- 我尝试在 loadView() 中将 UIView 子类分配给 UINavigationController 的 View ,但这样做会导致子 Controller View 不显示(而是显示为黑色)。为什么会发生这种意外行为?
- 如何支持 UINavigationController 的“从左向右拖动”过渡?
- 有没有办法通过子类化 UINavigationBar 来实现这一点?如果不是,我的自定义 View 如何支持 UINavigationController 的过渡动画?
- 将 UIViewController 子类化并编写我自己的基本 UINavigationController 行为的实现是否有任何优势?
最佳答案
我明白仅使用这些方法是不够的:
func setBackgroundImage(UIImage?, for: UIBarMetrics)
并将任何 View 设置为 titleView
以在标题区域插入一个 View 。
也没有将导航栏设置为透明,只有 barbuttons
和 titleview
显示在 subview 上。
关于ios - 如何使用自定义 header 或 UINavigationBar 子类化 UINavigationController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44300653/