如何使用自定义标头或UINavigationBar子类化UINavigationController?

时间:2017-06-01 07:02:23

标签: ios swift uiview uiviewcontroller uinavigationcontroller

我想将UINavigationController子类化为包含几种类型的标题,这些标题可以从一种转换为另一种。我正在考虑设计中的一些事情:

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

    Header 2

1 个答案:

答案 0 :(得分:0)

我知道使用这些方法是不够的:

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

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

查看UINavigationBarUINavigationItem文档