gpt4 book ai didi

iphone - MKMapview 影响 UINavigationBar 和 TabBar 外观

转载 作者:可可西里 更新时间:2023-11-01 03:30:04 24 4
gpt4 key购买 nike

我在 UIView 中有一个 MKMapView。在 iOS7 之前从来没有任何问题。我的 UITabbar 和 UINavigationBars 颜色由 UIAppearance 协议(protocol)设置。

出于某种原因,每当启动 MKMapView 时,我所有的标签栏和导航栏都会重置,而忽略外观类的 barTintColor 设置。 UIAppearance 的所有其他设置似乎都保留了下来,例如 title 属性和 barItem 属性。只有 barTintColor 熄灭。

还有一件事。这只发生在 iPhone 4 和 iPhone4S 上,不会发生在 iPhone 5 上。它也不会发生在模拟器上。在 iOS6 中根本不是问题。

我找不到重置的其他原因。我浏览并评论了几乎所有发生的事情,但无论哪种方式都没有效果。

如果我删除 MKMapView 控件,则不会重置颜色。如果我继续使用 MKMapView 呈现另一个完全不同的 View ,颜色将再次重置。

我正在寻找其他要检查的内容的想法,什么样的设置或方法可能会导致此行为。给我一些要消除的东西,我卡住了。

附加信息:

现在认为这可能是一个错误。我在 ViewDidLoad 中放了一行代码将导航栏的颜色硬编码为任意颜色,只是为了看看发生了什么。

UINavigationBar *bar = self.navigationController.navigationBar;
[bar setBarTintColor = [UIColor GreenColor];

我在下一行换行。检查栏,颜色似乎已设置。

在 iPhone4 或 4S 上,条不会变绿。在 iPhone5 和模拟器上,条变为绿色。

我发现了更多元素。颜色没有变化。看来能见度是。然而,读取颜色和条形的 alpha 值都返回 1.0。

所以颜色是正确的。

半透明是。

Alpha 为 1.0。

然而条形是完全透明的,没有颜色,没有色调。

我想我会把它作为一个错误正式归档。我做了一个只有 MKMapview 的测试 viewController。没有代码,没有委托(delegate),没有注释。用它来代替我适当的 Controller 。同样的事情发生了。

我现在需要的是解决方法。我只是不知道发生了什么变化。当我检查导航栏的属性时,一切都是正确的。色调颜色、半透明度、条形色调颜色、alpha 值。据我所知,该东西应该按预期显示。

谁能告诉我其他可以使导航栏背景完全透明的属性或方法?

最佳答案

经过更多搜索后,我发现开发者论坛中有一些相关主题,并且这个问题已经注意到一段时间了。我希望我会收到回复说我的错误报告是骗人的。与此同时,我相信我已经想出了一个解决方法。

我想到的是一系列设置

self.navigationController.navigationBar.translucent = NO;
self.tabBarController.tabBar.translucent = NO;

当加载包含 MKMapView 的 View ,然后在 viewDidAppear 中将其设置为 YES 时。我在 viewWillDisappear 上再次设置为 NO。然后返回的 viewController 必须在其 viewDidAppear 中再次重置为半透明。

我在带有 map 的 View Controller 中使用了一系列 NSNotification 帖子。我将我的导航 Controller 和标签栏子类化,让它们监听通知并通过切换它们自己的栏半透明属性来响应。

设法完成它。使用少量代码,但无缘无故地进行了大量事件。更希望尽快看到这个修复。

关于iphone - MKMapview 影响 UINavigationBar 和 TabBar 外观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19080459/

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