3

在尝试创建自定义* 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,而且我还没有真正弄清楚如何使用自动调整大小的蒙版。我使用硬编码的“魔术”数字。

4

1 回答 1

3

我不会做这两个。

UIToolbar 当你想做它做的事情时很好,它允许一些基本的定制。但在这种情况下,您需要一个类似工具栏的视图,它以 UIToolbar 似乎不允许的方式绘制自身。您可能确切地知道要在“工具栏”中显示哪些项目,并且您不太可能需要处理任意分类的 UIBarItem。

因此,与其让自己头疼地试图强迫 UIToolbar 做一些它从未设计过的事情,不如创建一个包含背景图像的简单视图(其中一部分将是透明的)。在视图中放置一些基于图像的 UIButtons,然后收工。创建一个表示您的工具栏的自定义 UIView 子类并不是一个坏主意,这样所有设置都可以很好地打包在一个地方,这样您就可以在需要时在多个视图中重用工具栏。

于 2013-04-28T15:37:29.043 回答