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

最佳答案

可能可行,但很危险:在UINavigationBar的CALayer对象上设置一个转换。将条旋转“-1 * M_PI_2”的转换几乎是正确的,您可能还需要将其转换几个像素才能正确定位。

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

(我已经完成了后一种方法来提供自定义UINavigationBars-效果很好)

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

10-07 19:02
查看更多