自定义视图嵌入导航栏

Gri*_*ear 7 cocoa-touch objective-c ios

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


启动导航栏

启动导航栏


结束导航栏(推后)

结束导航栏


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

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

编辑

我也发现这些可能有用的旧问题: 更改iPhone导航栏的高度, 更改UINavigationBar高度,

另外,可调整大小的导航栏,你可以找到在这里 GitHub上是有用的

欢迎更好的解决方案

Gri*_*ear 9

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

在这里,你可以找到一个示例代码,关于如何自定义,UINavigationBar不会过多地干涉方向,retrocompatibility等.

只需下载示例代码并查看扩展导航栏示例.

如果只有很少的单词,他们会创建一个附加到导航栏的自定义视图,看起来像导航栏本身.Apple解释清楚:

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

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