【问题标题】:How to subclass UINavigationController with a custom header or UINavigationBar?如何使用自定义标题或 UINavigationBar 子类化 UINavigationController?
【发布时间】:2017-11-02 04:42:18
【问题描述】:

我想继承 UINavigationController 以包含几种类型的标头,这些标头可以从一种转换到另一种。我正在考虑设计中的一些事情:

  1. 我应该如何管理子控制器视图的大小?将它们限制在每种标题的底部似乎很笨重,并且在转换期间难以管理。
  2. 我尝试在 loadView() 中将 UIView 子类分配给 UINavigationController 的视图,但这样做会导致子控制器视图不显示(而是显示为黑色)。为什么会出现这种意外行为?
  3. 如何支持 UINavigationController 的“从左向右拖动”过渡?
  4. 有没有办法通过继承 UINavigationBar 来实现这一点?如果没有,我的自定义视图如何支持 UINavigationController 的过渡动画?
  5. 将 UIViewController 子类化并编写我自己的基本 UINavigationController 行为的实现会有什么好处吗?

【问题讨论】:

    标签: ios swift uiview uiviewcontroller uinavigationcontroller


    【解决方案1】:

    我明白使用这些方法是不够的:

    func setBackgroundImage(UIImage?, for: UIBarMetrics) 并将任何视图设置为titleView 以在标题区域插入视图。

    也不将导航栏设置为透明,并且仅在子视图上显示barbuttonstitleview

    查看UINavigationBarUINavigationItem 文档

    【讨论】:

      猜你喜欢
      • 2011-02-22
      • 2019-11-28
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多