如何在 Swift 中制作简单的 UITabBarController?

Posted

技术标签:

【中文标题】如何在 Swift 中制作简单的 UITabBarController?【英文标题】:How to make simple UITabBarController in Swift? 【发布时间】:2015-03-28 18:29:31 【问题描述】:

我创建了一个 UITabBarController 类

我创建了两个视图控制器并为每个控制器设置了标题属性

我想更改标签中文本标签的大小和颜色

我已经设置了标签颜色和框架使用

UITabBar.appearance().barTintColor = UIColor.blueColor()

tabBar.frame = CGRectMake(0, 0, view.frame.width, 100)

现在为了调整选项卡,我尝试了以下各项

UITabBarItem.appearance().setTitleTextAttributes(NSDictionary(object: UIColor.whiteColor(), forKey: NSForegroundColorAttributeName), forState: UIControlState.Normal)

将文本颜色更改为白色

UITabBarItem.appearance().setTitleTextAttributes(NSDictionary(object: UIColor.whiteColor(), forKey: NSForegroundColorAttributeName), forState: UIControlState.Normal)

UITabBarItem.appearance().setTitleTextAttributes(NSDictionary(object: UIFont(name: "Helvetica", size: 16.0)!, forKey: NSFontAttributeName), forState: UIControlState.Normal)

那只是改变了文本的大小,而不是颜色!

UITabBarItem.appearance().setTitleTextAttributes(NSDictionary(objects: [NSForegroundColorAttributeName, NSFontAttributeName], forKeys: [UIColor.whiteColor(), UIFont(name: "Helvetica", size: 16.0)!]), forState: UIControlState.Normal)

// OR

var attributes = NSDictionary(objects: [NSForegroundColorAttributeName, NSFontAttributeName], forKeys: [UIColor.whiteColor(), UIFont(name: "Helvetica", size: 16.0)!])

UITabBarItem.appearance().setTitleTextAttributes(attributes, forState: UIControlState.Normal)

最后一点什么也没做,既没有设置标签文本的颜色,也没有设置标签文本的大小

更新-----

更准确地说,上面的代码都是在viewWillAppear的UITabBarController子类中尝试的

此外,我很好奇如何制作整个选项卡(可选项卡),而不仅仅是文本标签的一部分,还在选项卡之间添加某种行分隔符

【问题讨论】:

【参考方案1】:

我发现了如何实现它

设置标题颜色和大小必须通过UITabBarItem外观“代理”

override func viewWillLayoutSubviews() 

    self.tabBar.frame = CGRectMake(0, 20, view.frame.width, 50)

    var font = UIFont(name: "Helvetica", size: 16)

    var objs = NSArray(objects: font!, UIColor.whiteColor())

    var keys = NSArray(objects: NSFontAttributeName, NSForegroundColorAttributeName)

    UITabBarItem.appearance().setTitleTextAttributes(NSDictionary(objects: objs, forKeys: keys), forState: UIControlState.Normal)

【讨论】:

以上是关于如何在 Swift 中制作简单的 UITabBarController?的主要内容,如果未能解决你的问题,请参考以下文章

Swift中自定义uitabbar溢出项的TableViewController

swift UITabBar在Swift中具有自定义高度

当某些条件为真时显示 UITabBar

OC和Swift中的UITabBar和UINaviGationBar的适配 [UITabbar在IPad中的适配]

如何以编程方式使用 UITabBar

在 UITabBarController 中制作自定义 UITabBar 的正确方法