SwiftUI – 导航栏“isTranscluent”属性在 iPad 上崩溃
Posted
技术标签:
【中文标题】SwiftUI – 导航栏“isTranscluent”属性在 iPad 上崩溃【英文标题】:SwiftUI – Navigation bar "isTranscluent" property crashes on iPad 【发布时间】:2020-06-27 06:38:47 【问题描述】:如何使用 SwiftUI 为 iPad 导航栏设置isTranscluent
属性。以下代码在 iPhone 中运行良好,但在 iPad 中崩溃并出现错误:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
。
UINavigationBar.appearance().isTranslucent = false
【问题讨论】:
适用于 Xcode 11.4 / iPad Air3。 How to create a Minimal, Reproducible Example @Asperi 你检查过 SwiftUI 吗? 我确实做到了:) 【参考方案1】:使用 UIKit 在 Xcode 12.0 Beta(iPad Pro 2018 和 iPadOS 13.5)中运行良好:
navigationController.navigationBar.isTranslucent = false
在使用 SwiftUI 的 Xcode 12.0 Beta(iPad Pro 2018 和 iPadOS 13.5)中也可以正常工作:
struct NavigationConfigurator: UIViewControllerRepresentable ...
NavigationView
ScrollView
Text("Scroll View")
.navigationBarTitle("Navigation Bar", displayMode: .inline)
.background(NavigationConfigurator controller in
controller.navigationBar.barTintColor = .red
controller.navigationBar.titleTextAttributes = [.foregroundColor : .grey]
controller.navigationBar.isTranslucent = false
)
【讨论】:
以上是关于SwiftUI – 导航栏“isTranscluent”属性在 iPad 上崩溃的主要内容,如果未能解决你的问题,请参考以下文章