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

标签 ipad ios uiviewcontroller uinavigationcontroller

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

最佳答案

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

绝对有效,但需要付出更多努力:呈现自定义导航栏,从 UINavigationController 实现委托(delegate)协议(protocol),监听导航变化,并在回调中实现您自己的动画。

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

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

关于ipad - 带有自定义垂直按钮栏的 UINavigationController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4346157/

相关文章:

iphone - iPhone 中调用某些 CTFunction 时出现内存泄漏

ios - 如何将iPad模拟器升级为iPad(Retina)模拟器?

objective-c - NSOperationQueue - 过早完成调用

javascript - iPad 光标在文本区域跳跃(位移)

jquery - ipad 禁用没有 jquery 的选择选项

ios - 编译 iOS 静态库以解决 Adob​​e Native Extension 链接错误

ios - 在 iOS 中为 Today Extension(Widget) 安装 pods

objective-c - iOS6]在加载并显示当前 View 之前跳转到另一个 View

iOS10 : How to avoid memory leaks in a segue circle

ios - 关闭 2 个 ViewController