UIBarButtonItems 选择的颜色在 iOS 7 中不会正确更改
Posted
技术标签:
【中文标题】UIBarButtonItems 选择的颜色在 iOS 7 中不会正确更改【英文标题】:UIBarButtonItems selected color won't change properly in iOS 7 【发布时间】:2013-12-11 10:06:23 【问题描述】:所以我在 ios 7 中遇到 UIBarButtonItem 外观问题。我找不到任何文档的属性似乎设置了导航栏按钮按下时的不透明度,我不知道如何修改它。
[self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];
[[UIBarButtonItem appearance] setTitleTextAttributes:@UITextAttributeTextColor: [UIColor whiteColor] forState:UIControlStateNormal];
[[UIBarButtonItem appearance] setTitleTextAttributes:@UITextAttributeTextColor: [UIColor orangeColor] forState:UIControlStateHighlighted];
对于这段代码,我得到的结果如下所示。
我不确定这里发生了什么。第一个问题是我似乎无法让箭头着色(因为没有 setTintColor:forState: 方法)。第二个问题是按下时这种可怕的不透明度/色调。谢谢!
【问题讨论】:
为此,您必须设置 uiimage 选择/取消选择。 你找到文本颜色的解决方案了吗? 【参考方案1】://自定义返回栏按钮将此代码粘贴到appdelegate中
UIImage *buttonBack30 = [[UIImage imageNamed:@"button_back_textured_30"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 5)];
UIImage *buttonBack24 = [[UIImage imageNamed:@"button_back_textured_24"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 12, 0, 5)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:buttonBack30
forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:buttonBack24
forState:UIControlStateNormal barMetrics:UIBarMetricsLandscapePhone];
【讨论】:
我其实只是想给文字上色,而不是设置图像!【参考方案2】:你需要在ios7中为UIBarButtonItem
实现下面两个方法
@property(nonatomic, retain) UIColor *tintColor
- (void)setBackButtonBackgroundImage:(UIImage *)backgroundImage forState:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics
【讨论】:
我只是尝试为文本着色,而不是设置背景图像。 :)【参考方案3】:尝试下面的解决方案,它可能会起作用
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont
fontWithName:@"YOURFONT" size:14], NSFontAttributeName,
[UIColor whiteColor], NSForegroundColorAttributeName, nil];
[[UINavigationBar appearance] setTitleTextAttributes:attributes];
【讨论】:
以上是关于UIBarButtonItems 选择的颜色在 iOS 7 中不会正确更改的主要内容,如果未能解决你的问题,请参考以下文章
如何从默认的蓝色为MFMailComposeViewController生成UIBarButtonItems的颜色?
在 iPad 上的 inputAssistantItem 中为 UIBarButtonItems 着色
在 UIToolbar 内向上移动 UIBarButtonItems