快速更改UITabBar中“更多” UINavigationController的背景颜色

Posted

技术标签:

【中文标题】快速更改UITabBar中“更多” UINavigationController的背景颜色【英文标题】:Change the background color of “More” UINavigationController in UITabBar in swift 【发布时间】:2016-01-02 10:21:11 【问题描述】:

我想在我的 UITabBar 中更改“更多”UINavigationController 的背景颜色。当我尝试更改背景颜色时,结果不是很好。那是我的代码:

import UIKit
import SwiftyJSON
import FontAwesomeKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate 

var window: UIWindow?


func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
    application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Alert, .Sound, .Badge], categories: nil))

    // Override point for customization after application launch.

    UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName : UIColor.whiteColor()], forState: .Selected)
    UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName : UIColor.whiteColor()], forState: .Normal)
    tabBarController.moreNavigationController.navigationBar.barStyle = .Default
    tabBarController.moreNavigationController.navigationBar.backgroundColor = UIColor.orangeColor()
    tabBarController.moreNavigationController.navigationBar.tintColor = UIColor.whiteColor()

    return true


func applicationWillResignActive(application: UIApplication) 
    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.


func applicationDidEnterBackground(application: UIApplication) 
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.


func applicationWillEnterForeground(application: UIApplication) 
    // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.


func applicationDidBecomeActive(application: UIApplication) 
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.


func applicationWillTerminate(application: UIApplication) 
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.

结果如下: Capture of UINavigationController

【问题讨论】:

你到底想要什么不清楚 【参考方案1】:

将 barStyle 更改为 UIBarStyle.Black 这将创建一个纯色背景并添加

tabBarController.moreNavigationController.navigationBar.translucent = false

这应该为您完成工作。

【讨论】:

以上是关于快速更改UITabBar中“更多” UINavigationController的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

UITabBar项过多时如何自定义出现的UINavigationBar?

主题 UITabBar 项目的问题

单击时使UITabBar图标不调整大小/缩放?

在 UITabBar 背景中设置渐变

在 iOS 中导航期间更改 UITabBar

当视图在栏上时为 UITabBar 设置单独的标题与更多...?