gpt4 book ai didi

ios - 在其 View 加载之前设置 UITabBarItem 属性?

转载 作者:行者123 更新时间:2023-11-29 03:22:59 24 4
gpt4 key购买 nike

我正在尝试更改 UITabBar 标题的颜色。

我在每个 View Controller 的 viewDidLoad 中都有这段代码:

[self.tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName : 
[UIColor whiteColor]} forState:UIControlStateSelected];
[self.tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName :
[UIColor whiteColor]} forState:UIControlStateNormal];

这只起到了一半的作用,因为只有在 View 加载后颜色才会从默认值改变(因此,在标签栏项目至少被点击一次之后)。这不是我想要的行为,我希望在应用程序启动后立即设置颜色。

将代码放在 View Controller 的 initWithNibName: 中根本不起作用。

有什么方法可以解决 App Delegate 的 didFinishLaunchingWithOptions 中的 tabBarItem

更新:

我在下面标记为正确的答案有效,但我还找到了另一种方法,如果您想处理单个 UITabBarItem,这种方法效果更好。在选项卡栏 Controller 中,通过从 Interface Builder 中创建 socket 或以编程方式将选项卡栏分配给指针后,您可以像这样处理各个 tabBarItem(对于指向的 UITabBar通过 tabBar):

UITabBarItem *tab1 = [self.tabBar.items objectAtIndex: 0];
UITabBarItem *tab2 = [self.tabBar.items objectAtIndex: 1];

等...

然后你可以做类似的事情

[tab1 setTitleTextAttributes:]

以及各种其他东西。

最佳答案

查看 UIAppearance。 https://developer.apple.com/library/iOS/documentation/UIKit/Reference/UIAppearance_Protocol/Reference/Reference.html

创建一个实用程序类来实现您想要的选项卡栏和导航栏外观。然后从 App Delegate 的 didFinishLaunchingWithOptions 调用该类。下面是一个帮助您入门的示例:

+ (void) setUpTabBarAppearance
{
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Your Font" size:15], UITextAttributeFont, [UIColor whiteColor], UITextAttributeTextColor, [UIColor clearColor], UITextAttributeTextShadowColor, nil] forState:UIControlStateNormal];
[[UITabBarItem appearance] setTitleTextAttributes:@{ UITextAttributeTextColor : [UIColor greenColor] }forState:UIControlStateSelected];
[[UITabBar appearance] setSelectedImageTintColor:[UIColor greenColor]];
}

然后从您的应用委托(delegate)的 didFinishLaunchingWithOptions 调用:[utility setUpTabBarAppearance];此外,通过这种方式,您只需修改 TabBar 的外观一次,而不用在每个类中修改。

关于ios - 在其 View 加载之前设置 UITabBarItem 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20846706/

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