自定义视图嵌入导航栏

时间:2015-07-31 09:49:24

标签: ios objective-c cocoa-touch

我正在尝试创建一个与日历应用中使用的Apple相似(并具有相同行为)的导航栏。 特别是(见下图):

启动导航栏

Starting Navigation Bar

结束导航栏(推送后)

Ending Navigation Bar

我试图继承UINavigationBar并覆盖sizeThatFits(rect:CGrect)方法。这将增加条形高度但是自定义视图的结果不正确,以及" pop / push"之间的动画。和按钮对齐(按钮保持对齐而不是向上)。这个解决方案似乎真是一团糟。

现在,您是否有更好的解决方案在导航栏中嵌入自定义视图(具体如何在图像中表示)并使此视图也成为导航栏动画的一部分?

修改

我也发现这些可能有用的旧问题: Change iPhone navigation bar's heightChange UINavigationBar Height

您可以在GitHub上找到here resizable-navigation-bar 非常有用

欢迎提供更好的解决方案

1 个答案:

答案 0 :(得分:8)

我可能会找到Apple提供的一个很好的解决方案来解决这个问题"。

HERE您可以找到有关如何自定义UINavigationBar的示例代码,而不会过多地干扰方向,反向兼容等。

只需下载示例代码,然后参阅 Extended Navbar 示例。

如果没有单词,他们会创建一个附加到导航栏的自定义视图,该视图看起来像导航栏本身。 Apple明确解释道:

此示例演示如何将自定义视图放置在导航栏下方,使视图显示为导航栏本身的一部分。此技术可用于创建类似于iOS日历应用程序的界面。

我仍然不了解如何使用此解决方案实现正确的推送动画,但这可能是一个很好的起点。 无论如何,这不是嵌入式视图