带有自定义垂直按钮栏的 UINavigationController

Posted

技术标签:

【中文标题】带有自定义垂直按钮栏的 UINavigationController【英文标题】:UINavigationController with custom vertical button bar 【发布时间】:2010-12-03 13:49:54 【问题描述】:

我需要实现一个基于导航的应用程序,该应用程序带有一个保持在屏幕垂直尺寸上的定制按钮栏,类似于 Reeder iPad 应用程序(请参阅Reeder screenshot)。 实现这一结果的最佳方法是什么?我想过将栏添加为 UINavigationController 的子视图,并通过我的按钮栏视图控制器中的 parentViewController 引用调用它的方法(如 pushViewController:animated:),但这似乎有点令人费解。

【问题讨论】:

【参考方案1】:

可能有效,但很危险:在 UINavigationBar 的 CALayer 对象上设置变换。将条形旋转“-1 * M_PI_2”的变换几乎是正确的,您可能还需要将其平移几个像素,以使位置正确。

确实有效,但需要更多努力:渲染自定义导航栏,从 UINavigationController 实现委托协议,并监听导航变化,并在回调中实现您自己的动画。

(我已经完成了后一种方法来提供自定义 UINavigationBars - 它工作正常)

后一种方法的唯一警告是您的动画可能会暂停/延迟,因为默认情况下它们会相互等待完成。如果您查看 UIView 动画,有一个设置显示“立即播放,即使其他动画正在进行中”,您可能需要将其设置为 YES

【讨论】:

以上是关于带有自定义垂直按钮栏的 UINavigationController的主要内容,如果未能解决你的问题,请参考以下文章

带有自定义按钮的导航抽屉

自定义标签栏问题

自定义标签栏的更多按钮

ios 顶部带有标签栏的自定义 uitableview

自定义钛中搜索栏的取消按钮

两个带有搜索栏的自定义单元格