gpt4 book ai didi

iphone - 如何在 Xcode 中更改选项卡栏颜色

转载 作者:行者123 更新时间:2023-12-03 20:25:17 32 4
gpt4 key购买 nike

如何更改此代码中的选项卡栏颜色?我的标签栏是黑色的。单击后将其更改为蓝色。我想将丝束颜色更改为任何其他颜色。

此代码来自:application.m还有:rotatingTabBarController.m,rotatingTabBarController.h

//  1B) If this app uses tabs, create a tabbed navigation application and set the default screen for each tab
// to the defaultScreenGuid in the tabs data
if([self.tabs count] > 0){
[BT_debugger showIt:self:[NSString stringWithFormat:@"building a tabbed based navigation app%@", @""]];

if([self.screens count] > 0){

//appDelegate
qoqb_appDelegate *appDelegate = (qoqb_appDelegate *)[[UIApplication sharedApplication] delegate];

//initialize the tab bar controller
rootTabBarController = [[BT_rotatingTabBarController alloc] init];
[rootTabBarController.view setFrame:[[UIScreen mainScreen] bounds]];
[rootTabBarController setDelegate:appDelegate];
rootTabBarController.view.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);

//if we have a tabbar color setup in the theme
if(self.rootTheme != nil){
if([self.rootTheme.jsonVars objectForKey:@"tabBarColor"]){
if([[self.rootTheme.jsonVars objectForKey:@"tabBarColor"] length] > 3){
UIColor *tabberColor = [BT_color getColorFromHexString:[self.rootTheme.jsonVars objectForKey:@"tabBarColor"]];
NSString *tabberOpacity = @".50";
if([self.rootTheme.jsonVars objectForKey:@"tabBarColorOpacity"]){
if([[self.rootTheme.jsonVars objectForKey:@"tabBarColorOpacity"] length] > 0){
tabberOpacity = [NSString stringWithFormat:@".%@", [self.rootTheme.jsonVars objectForKey:@"tabBarColorOpacity"]];
if([tabberOpacity isEqualToString:@".100"]) tabberOpacity = @".50";
}
//colorize the tab-bar
[rootTabBarController addTabColor:tabberColor:[tabberOpacity doubleValue]];
}
}
}
}

//Fill a temporary array of view controllers to assign to tab bar controller
NSMutableArray *tmpViewControllers = [[NSMutableArray alloc] init];

//loop through each tab bar item in application data
for(int i = 0; i < [[self tabs] count]; i++){

//this tab
BT_item *thisTab = (BT_item *)[[self tabs] objectAtIndex:i];
NSString *textLabel = [[thisTab jsonVars] objectForKey:@"textLabel"];
UIImage *tabIcon = [UIImage imageNamed:[[thisTab jsonVars] objectForKey:@"iconName"]];

//get the screen from the apps array of screens for this tab's view controller
if([[thisTab jsonVars] objectForKey:@"homeScreenItemId"]){

BT_item *thisTabsDefaultScreenData = [self getScreenDataByItemId:[[thisTab jsonVars] objectForKey:@"homeScreenItemId"]];

//if this is the first tab in the list, remember it as the "currently loaded screen", also make it the "previously loaded screen"
if(i == 0){
[self setCurrentScreenData:thisTabsDefaultScreenData];
[self setPreviousScreenData:thisTabsDefaultScreenData];
[thisTabsDefaultScreenData setIsHomeScreen:TRUE];

//if theScreen has an audio file..load it in the delegate
if([[BT_strings getJsonPropertyValue:thisTabsDefaultScreenData.jsonVars:@"audioFileName":@""] length] > 3){

//appDelegate
qoqb_appDelegate *appDelegate = (qoqb_appDelegate *)[[UIApplication sharedApplication] delegate];

//initialize audio in different thread to prevent UI blocking
[NSThread detachNewThreadSelector: @selector(loadAudioForScreen:) toTarget:appDelegate withObject:thisTabsDefaultScreenData];

}

}

最佳答案

tabBar.tintColor = [UIColor greenColor];

如果您的 IOS 版本不是 IOS 5,将会崩溃,请参阅 docs

更安全的方法是:

if ([tabBarController.tabBar respondsToSelector:@selector(setTintColor:)]) {
[tabBarController.tabBar setTintColor:color];
}

//新代码

if ([rootTabBarController.tabBar respondsToSelector:@selector(setTintColor:)]) {
[rootTabBarController.tabBar setTintColor:tabberColor];
}

关于iphone - 如何在 Xcode 中更改选项卡栏颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10310651/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com