iOS版11导航栏清晰
我已经看到了各种主题的SO这一点,但我不能让任何人在iOS的11和Xcode 9iOS版11导航栏清晰
我想建立一个完全清晰的导航栏工作,但对我而言,我无法摆脱“磨砂”的外观,也不能摆脱底部蚀刻。
这是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
navigationController?.navigationBar.isTranslucent = true
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.view.backgroundColor = .clear
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.backgroundColor = .clear
navigationController?.navigationBar.barTintColor = .clear
}
我缺少什么?
您更改了使其透明所需的所有属性,所以问题不在此处。有些事情,你可以检查,可能是太有问题:
- 任何类型
UINavigationBar.appearance()
全局定义的 -
UINavigationController
和UINavigationBar
扩展 - 可能后
viewDidLoad
(viewWillAppear
,viewDidAppear
,layoutSubviews
进行任何其他更改...)在被测类或其子类中 - 故事板/ XIB上的UINavigationController上的定制
- This是有点愚蠢,但检查你的navigationController不是零
这是一个非常新鲜的项目,基于Xcode 9的基本主/细节,所以你提到的大部分事情都没有完成。我发布的代码实际上是VC中唯一的代码。话虽如此,我试图让这个工作(在做代码之前)做了一些改变。我会恢复这些变化,并给予一个旋风。 –
用一个'UINavigationController'和两个'UIViewController'将你的代码添加到一个具有一个故事板的项目中,并且它完美地工作。这就是为什么我提出了不同的方法,因为我不知道你使用的代码的性质。你可以做的另一件事是清理,删除派生数据和重建,因为XIB和故事板可以被缓存。 – jvrmed
良好的调用派生数据....很好,可能是这种情况。我会给它一个旋风。我打算再给它一次。会及时向大家发布。 –
已经创建使用Xcode中9的默认主详细模板的项目后,所以,我决定的问题不是DerivedData,而是“推到另一个导航控制器”。我的项目有以下结构:
What Xcode 9 Generated with Master/Detail template
我把它改成如下:
Drop the split view controller & extra navigationcontroller
建立我的故事板这样它的所有工作之后......我感到惊讶的是尽管如此,使用第二个navcontroller(其中嵌入了DetailViewController的那个)不起作用。任何人有什么想法,为什么?
尝试navigationController?.navigationController?.navigationBar
拆分视图控制器把详细导航控制器到主导航控制器在水平紧凑环境。
所以有两个导航控制器和两个导航栏。您更改一个导航栏,但显示另一个导航栏
您是否尝试使其不透明而不是半透明? – arvidurs
检查这个帖子https://*.com/questions/40176803/swift-navigation-bar-background-color-white-does-not-work/40178657#40178657 – Joe