当前位置: 首页 > 面试题库 >

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

路伟
2023-03-14
问题内容

环境:-Xcode 6 beta 4-Swift语言-iOS选项卡式应用程序(默认xCode项目)

如何将选项卡的默认灰色更改为其他颜色?(最好是全球)

就我的研究而言,我需要以某种方式将每个选项卡的图像渲染模式更改为“原始”渲染模式,但是我不知道如何


问题答案:

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

// you can add this code to you AppDelegate application:didFinishLaunchingWithOptions: 
// or add it to viewDidLoad method of your TabBarController class
UITabBarItem.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 app
extension 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
    }
}


 类似资料:
  • 环境:-Xcode 6 beta 4-Swift语言-iOS选项卡式应用程序(默认Xcode项目) 如何将选项卡的默认灰色更改为其他颜色?(最好是在全球范围内) 就我的研究而言,我需要以某种方式将每个选项卡的图像渲染模式更改为原始渲染模式,但我不知道如何更改

  • 主要内容:ion-tabs,实例,ion-tab,$ionicTabsDelegateion-tabs ion-tabs 是有一组页面选项卡组成的选项卡栏。可以通过点击选项来切换页面。 对于 iOS,它会出现在屏幕的底部,Android会出现在屏幕的顶部(导航栏下面)。 用法 实例 <ion-tabs class="tabs-positive tabs-icon-only"> <ion-tab title="首页" icon-on="ion-ios-filing" icon-off

  • ion-tabs ion-tabs 是有一组页面选项卡组成的选项卡栏。可以通过点击选项来切换页面。 对于 iOS,它会出现在屏幕的底部,Android会出现在屏幕的顶部(导航栏下面)。 用法<ion-tabs class="tabs-positive tabs-icon-only"> <ion-tab title="首页" icon-on="ion-ios-filing" icon-off="io

  • 问题内容: 我正在研究适用于Python的matplotlib库。我开始理解它的一些基本复杂性,因为pylab和pyplot之间的区别,并且我正在尝试复制和修改图库中的一些示例。 我仍然不清楚的一件事是配置文件matplotlibrc的实际作用。 目前,我使用Windows 7下的WinPython 3.3.5.0 64位分发版。.matplotlibrc文件位于WinPython-64bit-3

  • 问题内容: 我有一个具有日期时间字段的模型: 当我在内置的django admin中检查该应用程序时,还会附加时间,因此,如果你尝试保存它,则会返回错误。如何设置默认的日期呢?(也不起作用) 问题答案: 这就是为什么你应该始终导入基本模块:而不是该模块中的类的原因f。 你犯的另一个错误是使用实际调用默认的函数。这意味着所有模型都将在首次定义类时获得日期-因此,如果你的服务器在不重新启动Apache

  • 我对tabView有问题。第一个选项卡应始终显示相同的内容(称为搜索模板,用#{not curSearch.isClosable()}标识)。所有其他选项卡都是搜索实例(用#{curSearch.isClosable()}标识) 代码如下: 不幸的是,在第一个选项卡上有一些被称为curSearch对象的方法,这些方法仅在第二个选项卡和后面的选项卡上使用。如果我不使用ui:insert,它不会改变任