栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Swift Xcode 6的默认选项卡栏项目颜色

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Swift Xcode 6的默认选项卡栏项目颜色

每个(默认)选项卡栏项均由文本和图标组成。通过指定外观可以很容易地全局更改文本颜色:

// you can add this pre to you AppDelegate application:didFinishLaunchingWithOptions: // or add it to viewDidLoad method of your TabBarController classUITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.magentaColor()], forState:.Normal)UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.redColor()], forState:.Selected)

对于图像,情况要复杂一些。您不能全局定义它们的外观。您应该在TabBarController类中重新定义它们。将下面的代码添加到

viewDidLoad
您的
TabBarController
类的方法中:

for item in self.tabBar.items as [UITabBarItem] {    if let image = item.image {        item.image = image.imageWithColor(UIColor.yellowColor()).imageWithRenderingMode(.AlwaysOriginal)    }}

众所周知

imageWithColor(...)
,UIImage类中没有方法。所以这是扩展实现:

// Add anywhere in your appextension UIImage {    func imageWithColor(tintColor: UIColor) -> UIImage {        UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale)        let context = UIGraphicsGetCurrentContext() as CGContextRef        CGContextTranslateCTM(context, 0, self.size.height)        CGContextScaleCTM(context, 1.0, -1.0);        CGContextSetBlendMode(context, .Normal)        let rect = CGRectMake(0, 0, self.size.width, self.size.height) as CGRect        CGContextClipToMask(context, rect, self.CGImage)        tintColor.setFill()        CGContextFillRect(context, rect)        let newImage = UIGraphicsGetImageFromCurrentImageContext() as UIImage        UIGraphicsEndImageContext()        return newImage    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/636311.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号