MKUserTrackingBarButtonItem tint color IOS7 不起作用,但在 IOS 6 上起作用

Posted

技术标签:

【中文标题】MKUserTrackingBarButtonItem tint color IOS7 不起作用,但在 IOS 6 上起作用【英文标题】:MKUserTrackingBarButtonItem tint colour IOS7 does not work but does on IOS 6 【发布时间】:2013-09-26 14:53:04 【问题描述】:

使用 XCode 5 以 ios6 的最低操作系统为目标,我创建了这样的条形按钮项

self.navigationItem.rightBarButtonItem = [[MKUserTrackingBarButtonItem alloc] initWithMapView:self.mapView];

然后像这样设置它的色调

self.navigationItem.rightBarButtonItem.tintColor = [UIColor colorWithRed:175.0f / 255.0f green: 189.0f / 255.0f blue: 69.0f / 255.0f alpha:1.0f];

当我部署到 IOS6 设备时,条形按钮项目已正确着色,但在 IOS7 设备上它仍然是原厂蓝色

这是其他人遇到过的问题吗? XCode 5 的错误?

帮助?

谢谢

【问题讨论】:

我建议使用不同的(默认)栏按钮项目,看看问题是否仍然存在。如果是这样,那么奇怪的事情正在发生。如果不是,那可能是MKUserTrackingBarButtonItem 中的一个错误。 【参考方案1】:
MKUserTrackingBarButtonItem *buttonItem = [[MKUserTrackingBarButtonItem alloc]    initWithMapView:self.mapView];    
[buttonItem.customView setTintColor:[UIColor colorWithRed:175.0f / 255.0f green: 189.0f / 255.0f blue: 69.0f / 255.0f alpha:1.0f]];

【讨论】:

做到了。谢谢你,埃迪。【参考方案2】:

我也没有找到解决方案,但我知道更改默认窗口颜色会覆盖它。如果您不介意您的默认窗口颜色被覆盖,您可以对您的应用委托的 didFinishLaunchingWithOptions 方法进行以下操作。

self.window.tintColor = [UIColor colorWithRed:175.0f / 255.0f green: 189.0f / 255.0f blue: 69.0f / 255.0f alpha:1.0f];

【讨论】:

【参考方案3】:

来自 Apple 文档:

在 iOS 6 中,tintColor 为导航栏、标签栏、工具栏、搜索栏、 和范围栏。要在 iOS 7 中为条形背景着色,请改用 barTintColor 属性。

iOS 7 Transition Guide

【讨论】:

唉,没有。我的问题与 barbuttonitems 不是导航栏的背景有关。指南第 23 页使用 tintColor 为 barbutton 项目着色。正如我的问题所说,我正在这样做

以上是关于MKUserTrackingBarButtonItem tint color IOS7 不起作用,但在 IOS 6 上起作用的主要内容,如果未能解决你的问题,请参考以下文章