如何使用外观代理正确更改 UITabBar 的显示方式?

     2023-02-23     66

关键词:

【中文标题】如何使用外观代理正确更改 UITabBar 的显示方式?【英文标题】:How can I correctly change the way a UITabBar appears using the appearance proxy? 【发布时间】:2012-07-04 12:43:52 【问题描述】:

由于我正在开发 iOS >= 5.0 应用程序,因此我正在尝试通过外观代理更改主要 UI 组件的外观。

在处理UITabBar 组件时,我通过[[UITabBar appearance] setTintColor:] 方法正确地将其tintColor 更改为浅灰色阴影。但是这样做,包含在栏中的UITabBarItems 是完全不可能看到的,因为它们在标题标签中保留了旧的灰色/白色。

我尝试通过[UITabBarItem appearance] 代理更改它们的外观,但无法使它们可见。

谁能建议我解决这个问题的方法?谢谢!

【问题讨论】:

【参考方案1】:

您好,这将适用于您想要做的事情

// Customize the UIBarButtonItem
    UIImage *button30 = [[UIImage imageNamed:@"button_textured_30"] 
                         resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)];
    UIImage *button24 = [[UIImage imageNamed:@"button_textured_24"] 
                         resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)];

    [[UITabBarItem appearance] setBackgroundImage:button30 forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    [[UITabBarItem appearance] setBackgroundImage:button24 forState:UIControlStateNormal barMetrics:UIBarMetricsLandscapePhone];

    [[UITabBarItem appearance] setTitleTextAttributes:
      [NSDictionary dictionaryWithObjectsAndKeys:
      [UIColor colorWithRed:82.0/255.0 
                      green:82.0/255.0
                       blue:82.0/255.0
                      alpha:1.0],                     UITextAttributeTextColor,
      [UIColor colorWithRed:242.0 
                      green:237.0 
                       blue:237.0 
                      alpha:1.0],                     UITextAttributeTextShadowColor,
      [NSValue valueWithUIOffset:UIOffsetMake(0,1)],  UITextAttributeTextShadowOffset,
      [UIFont fontWithName:@"Helvetica" size:0.0],    UITextAttributeFont,nil]
                                         forState:UIControlStateNormal];

快乐编码:)

【讨论】:

我认为 setTitleTextAttributes: 方法仅适用于 iOS >= 6.0。这两张图是什么样子的? 这些用于设置按钮的背景图片 我认为您应该将 UIBarButtonItem 更改为 UITabBarItem 以使此解决方案起作用。 抱歉,这可能与UITabBarItem 也可以正常工作 是的!您介意更新答案,以便我接受吗?

Swift 中的外观代理 (iOS)

...这种语法不起作用,有没有人想出如何在segmentedControl或UITabBar等控件上设置标题文本属性?我想我很接近了segmentedControl.titleTextAttributesForState(UIContro 查看详情

如何更改 NetBeans GUI Designer Preview 中的外观?

】如何更改NetBeansGUIDesignerPreview中的外观?【英文标题】:HowtochangethelookandfeelinNetBeansGUIDesignerPreview?【发布时间】:2011-09-3006:38:48【问题描述】:使用NetBeansGUIBuilder时,“预览设计”功能会显示具有系统外观的面板(例如Windows)... 查看详情

UITabBar 外观问题 + NSThreads

】UITabBar外观问题+NSThreads【英文标题】:UITabBarappearanceproblem+NSThreads【发布时间】:2009-11-0619:32:47【问题描述】:我在尝试将UITabBar添加为AppDelegate窗口的子视图时遇到问题。上面的链接显示了屏幕混乱状态的截图。TabBarInAMessyStat... 查看详情

UITabBar 图像在 iOS 7 上无法正确显示

】UITabBar图像在iOS7上无法正确显示【英文标题】:UITabBarimagesnotshowingproperlyoniOS7【发布时间】:2015-05-1810:47:34【问题描述】:我有这个标签栏在iOS8上正常工作,但在iOS7上没有,有人能指出我正确的方向吗,我使用JSON文件在加载... 查看详情

如何防止使用 UIAppearance 和 UIView 的 tintColor 更改所有 UITabBar 图标颜色?

】如何防止使用UIAppearance和UIView的tintColor更改所有UITabBar图标颜色?【英文标题】:HowtopreventusingUIAppearancewithUIView\'stintColorfromchangingallUITabBariconcolours?【发布时间】:2015-10-1416:02:12【问题描述】:如果我执行UIView.appearance().tintColor... 查看详情

当我更改 UITabBar 的颜色时,它只显示为灰色

】当我更改UITabBar的颜色时,它只显示为灰色【英文标题】:WhenIchangethecolorofUITabBaritonlyshowsupingray【发布时间】:2012-12-0306:42:59【问题描述】:我在选项卡式应用的各种视图控制器的“viewDidLoad”中使用以下代码。UIColor*tabBarColor=... 查看详情

如何使用外观代理设置 UINavigationItem 的 backBarButtonItem?

】如何使用外观代理设置UINavigationItem的backBarButtonItem?【英文标题】:HowtosettheUINavigationItem\'sbackBarButtonItemwithanappearanceproxy?【发布时间】:2015-05-0716:39:29【问题描述】:我想将backBarButtonItem设置为我的应用程序中每个导航栏的自... 查看详情

如何使用 UITabBar 更改视图(不使用 UITabBarController 或 addSubview)?

】如何使用UITabBar更改视图(不使用UITabBarController或addSubview)?【英文标题】:HowtochangeviewwithUITabBar(withoutusingUITabBarControlleroraddSubview)?【发布时间】:2014-08-0712:55:41【问题描述】:我已经尝试了很多来完成这项工作。我不想使用... 查看详情

UITabBar 背景图像未正确显示

】UITabBar背景图像未正确显示【英文标题】:UITabBarbackgroundimagenotshowingproperly【发布时间】:2016-07-2703:28:07【问题描述】:我制作了自定义的UITabBar类并尝试设置背景图片。tabBar.backgroundImage=UIImage(named:"my_image")?.imageWithRenderingMode(.A... 查看详情

UITabBar 图标未正确显示

】UITabBar图标未正确显示【英文标题】:UITabBarIconsnotappearingcorrectly【发布时间】:2018-05-2410:34:39【问题描述】:我正在开发一个iOS应用程序。我有一个带有5个视图控制器的标签栏。所有的图标都在Storyboard中设置:当我启动应用... 查看详情

检测自定义按钮的 UIAppearance 代理中的更改

...个自定义按钮,它有几个属性标记为UI_APPEARANCE_SELECTOR。如何通过外观代理检测属性何时更改?不调用属性设置器。属性确实发生了变化,因为它在drawRect:中具有正确的值,但我仍然需要 查看详情

如何更改 UITabbar 选定的颜色?

】如何更改UITabbar选定的颜色?【英文标题】:howtochangeUITabbarselectedcolor?【发布时间】:2010-03-2408:44:23【问题描述】:据此post目前,Apple是否也会拒绝此代码?以及如何实现苹果将批准的内容?@interfaceUITabBar(ColorExtensions)-(void)reco... 查看详情

UITabBar 外观适用于 iOS6 但不适用于 iOS 5

】UITabBar外观适用于iOS6但不适用于iOS5【英文标题】:UITabBarappearanceworksoniOS6butnotiOS5【发布时间】:2013-01-1606:46:10【问题描述】:我有一些代码来自定义TabBar。我使用外观框架来做到这一点。该应用程序是iOS5+,因此据我了解应该... 查看详情

如何在不更改 UITabBar 标题的情况下更改 UINavigationBar 标题?

】如何在不更改UITabBar标题的情况下更改UINavigationBar标题?【英文标题】:HowtochangeUINavigationBartitlewithoutchangingUITabBartitle?【发布时间】:2016-03-1812:31:59【问题描述】:我在UITabBarController上嵌入了一个UINavigationController。我的目标是... 查看详情

使用不是 rootViewController 的 TabBarViewController 更改 UITabBar 的图标

】使用不是rootViewController的TabBarViewController更改UITabBar的图标【英文标题】:ChangetheiconsoftheUITabBarwithaTabBarViewControllerwhichisnottherootViewController【发布时间】:2014-11-2517:37:57【问题描述】:我想更改我的UITabBar的图标。是的,***上有... 查看详情

如何正确更改 odoo 12 视图显示?

】如何正确更改odoo12视图显示?【英文标题】:Howtochangeodoo12viewdisplayproperly?【发布时间】:2019-11-1021:52:09【问题描述】:嗨,如何更改odoo12view.xml以添加更多列,或在模块中添加一些内容?我试图使用这样的命令从头开始创建odo... 查看详情

如何隐藏或更改下一个队列项目的倒计时外观?

】如何隐藏或更改下一个队列项目的倒计时外观?【英文标题】:Howtohideorchangeappearanceofthecountdownfornextqueueitem?【发布时间】:2019-07-0311:27:58【问题描述】:我正在开发CAFCastReceiver,但对队列功能有疑问。cast-media-player提供了用于... 查看详情

解雇后如何以编程方式更改UITabBar选定的索引?

】解雇后如何以编程方式更改UITabBar选定的索引?【英文标题】:HowtoprogrammaticallychangeUITabBarselectedindexafterDismiss?【发布时间】:2017-06-1203:44:19【问题描述】:我在UITabBarViewcontroller上有一个模态UIViewController,我想关闭它,然后更... 查看详情