一种控件,在选项卡栏中显示一个或多个按钮,用于在应用程序中的不同子任务,视图或模式之间进行选择。
class UITabBar : UIView
通常,您可以将选项卡栏与对象结合使用,但也可以将其用作应用程序中的独立控件。标签栏始终出现在屏幕的底部边缘,并显示一个或多个对象的内容。可以使用背景图像或淡色自定义选项卡栏的外观,以适合您的界面需求。点按一个项目会选中并突出显示该项目,然后您可以使用对项目的选择来为您的应用启用相应的模式。UITabBarControllerUITabBarItem
您可以以编程方式或在Interface Builder中配置标签栏。一个对象提供自己的标签栏对象,必须配置提供给您的对象。以编程方式创建选项卡栏时,请使用方法或其他视图初始化方法设置其初始配置。使用此类的方法可以配置选项卡栏的外观。对于您自己创建的标签栏,您还可以使用此类的方法来指定标签栏显示的项目。UITabBarControllerinit(frame:)
注意
在类和类具有相似的外观,但不同的目的。使用标签栏传达和更改应用程序的模式。使用工具栏向用户呈现与当前呈现的内容相关的一组操作。有关何时同时使用标签栏和工具栏的更多信息,请参阅《iOS人机界面指南》。UITabBarUIToolbar
标签栏向其委托对象报告选择和用户自定义。对于您自己创建的标签栏,请使用委托来响应选择或对标签栏中项目的添加,删除或重新排序。(对象充当其管理的标签栏的委托。)有关实现标签栏委托的更多信息,请参见。UITabBarControllerUITabBarDelegate
配置选项卡栏的项目
您可以使用Interface Builder配置选项卡栏项目,也可以在代码中以编程方式创建和配置它们。Interface Builder中的选项卡栏预先配置了一些初始项,您可以根据需要添加,删除或重新排序项。在设计时如何配置项目取决于选项卡栏是否与对象关联:UITabBarController
在Interface Builder中配置选项卡栏:
存在对象时,向场景添加或删除视图控制器,并在选项卡栏控制器和每个新视图控制器之间创建关系序列。创建关系序列自动将新项目添加到选项卡栏,而删除现有的关系序列将删除相应的选项卡栏项目。UITabBarController
当不存在选项卡栏控制器时,将选项卡栏项从库中拖到选项卡栏上。
以编程方式配置标签栏:
要配置与对象关联的标签栏,请配置与标签栏控制器关联的视图控制器。标签栏自动从与该标签栏控制器关联的每个视图控制器的属性中获取其项目。UITabBarControllertabBarItem
要直接配置标签栏项目,请使用标签栏本身的方法。setItems(_:animated:)
选项卡栏一次显示所有屏幕上的选项卡,使用该属性确定如何在可用空间中放置项目。如果您有更多的项目超出可用空间的容纳量,请仅显示其中一部分,然后让用户选择要显示的选项卡。该方法显示用于选择要显示的选项卡栏项目的界面。itemPositioningbeginCustomizingItems(_
每个项目的内容都存储在一个对象中。每个项目均包含标题和要在选项卡中显示的图像。您还可以使用标签栏项目将徽章添加到相应的标签。有关创建和配置项目的更多信息,请参见。 UITabBarItemUITabBarItem
对于具有关联的标签栏控制器的标签栏,标签栏控制器自动管理选择并显示适当的视图控制器。唯一需要自己管理选择的时间是在没有选项卡栏控制器的情况下创建选项卡栏。标签栏向对象的方法报告选择,您可以使用它来响应选择更改。有关实现委托对象的更多信息,请参见。tabBar(_:didSelect:)delegateUITabBarDelegate
表1列出了在Interface Builder中为选项卡栏配置的属性。
要使标签栏国际化,必须为标签栏项目标题提供本地化的字符串。
有关更多信息,请参见《国际化和本地化指南》。
标签栏默认情况下可访问。
在iOS设备上启用VoiceOver时,当用户触摸选项卡栏中的选项卡时,VoiceOver会读取选项卡的标题,其在栏中的位置以及是否被选中。例如,在iPad上的iTunes应用程序中,您可能会听到“选定的有声读物,占七分之四”或“天才,七分之六”。
有关使您的界面可访问的常规信息,请参见《 iOS辅助功能编程指南》。
QQ:3365059189
SwiftUI技术交流QQ群:518696470