自定义 UIToolBar 的正确方法是啥?
Posted
技术标签:
【中文标题】自定义 UIToolBar 的正确方法是啥?【英文标题】:What is the correct approach for a custom UIToolBar?自定义 UIToolBar 的正确方法是什么? 【发布时间】:2013-04-28 14:11:31 【问题描述】:在尝试创建自定义* UIToolbar 时是否更好 - 在不被 Apple 商店拒绝的意义上更好:
选项 A
将超大中间按钮作为 UIButton 添加到self.navigationController.view
这是关键,因为我正在向 navigationController 添加 UIButton,这似乎与苹果文档相矛盾
使用 UIToolbar 外观实现自定义背景
选项 B
创建一个 UIToolbar 并将其添加为 UINavigationController 中当前 ViewController 的子视图 在 UINavigationController 中添加 UIButton 作为当前 ViewController 的子视图 使用UIToolBar的setBackgroundImage方法添加自定义背景*自定义背景,超大中间按钮
这是工具栏的形状:
额外细节:此应用适用于 ios 5.X 或更高版本。它使用 UINavigationController。关键挑战是应用程序的一部分根据应用程序的状态隐藏/显示导航栏。
选项 A 意味着我不必确定 UIToolBar 的放置位置,确定 UIToolbar 的放置位置是一个挑战,因为 a) 如果我显示或隐藏导航栏,这会垂直向上/向下移动所有内容 b ) 带有额外垂直空间的 iPhone 5 - 我不能使用自动布局,因为我支持 iOS 5,而且我还没有真正弄清楚如何使用自动调整大小的蒙版。我使用的是硬编码的“神奇”数字。
【问题讨论】:
【参考方案1】:这两种我都不会。
UIToolbar 当你想做它的时候很好,它允许一些基本的自定义。但在这种情况下,您需要一个类似工具栏的视图,它以 UIToolbar 似乎不允许的方式绘制自身。您可能确切地知道要在“工具栏”中显示哪些项目,并且您不太可能需要处理任意分类的 UIBarItem。
因此,与其让自己头疼地试图强迫 UIToolbar 做一些它从未设计过的事情,不如创建一个包含背景图像的简单视图(其中一部分将是透明的)。在视图中放置一些基于图像的 UIButtons,然后收工。创建一个自定义 UIView 子类来表示您的工具栏并不是一个坏主意,这样所有设置都可以很好地打包在一个地方,这样您就可以在需要时在多个视图中重用工具栏。
【讨论】:
感谢您抽出宝贵时间回复。我会尝试这种方法。有关确保此自定义视图始终位于屏幕底部的任何提示?由于显示/隐藏导航栏并在视图之间来回切换,我在尝试将其保持在 UINavigationController 底部时遇到了挑战。以及 4 英寸视网膜屏幕高度。 使用 UIToolBar 的一个好处是,您可以使用 UIToolBar 和 initWithBarButtonSystemItem 的 setItems 功能来安排按钮,而不必担心自己安排按钮。这不是让 UIToolBar 更受青睐吗?以上是关于自定义 UIToolBar 的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
为此任务编写自定义 AccumulatorParam 的正确方法是啥?