【问题标题】:Custom view embeed in a Navigation Bar嵌入在导航栏中的自定义视图
【发布时间】:2015-10-22 22:59:44
【问题描述】:

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


开始导航栏


结束导航栏(推送后)


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

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

编辑

我还发现这些老问题可能有用: Change iPhone navigation bar's height, Change UINavigationBar Height,

您可以在 GitHub 上找到 hereresizable-navigation-bar 也很有用

欢迎提供更好的解决方案

【问题讨论】:

  • 这似乎是 question:stackoverflow.com/questions/892905/… 的副本,它是 question:stackoverflow.com/questions/892905/… 的副本。这两个都应该回答你的问题,即使在细节上这个答案:stackoverflow.com/a/7533098/849616。另外,您为什么不在navigationBar 下方添加一个工具栏..?它应该看起来相似。
  • 是的,我已经看到了这个问题,但是它们太老了,我想在此期间可能会有所改变。于是我又问了一遍。 :)
  • 那么你至少应该链接那个问题,因为它现在只是一个重复。第一个问题已更新到 iOS 7,所以我认为它仍然有效。你读过我上面链接的那个答案吗?里面有教程。无论如何,我只想添加一个工具栏。在您的情况下,它看起来会非常好。请记住,在未来的 iOS 版本中,对 UIKit 中的任何内容进行黑客攻击都会导致不良后果。苹果表示导航栏有这样的高度,你应该坚持下去,否则这个解决方案可能会在未来的 iOS 版本中被打破。
  • 你是对的。我会更新问题。

标签: ios objective-c cocoa-touch


【解决方案1】:

我可能找到了苹果自己提供的一个很好的解决方案来解决这个“问题”。

HERE 您可以找到一个示例代码,了解如何自定义UINavigationBar 而不会过多地干扰方向、向后兼容性等。

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

如果字数不多,他们会创建一个附加到导航栏的自定义视图,看起来就像导航栏本身。苹果解释清楚:

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

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

【讨论】:

    猜你喜欢
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-16
    • 1970-01-01
    相关资源
    最近更新 更多