我的 iOS 应用程序使用故事板作为 UI,并使用自定义色调作为导航栏的背景颜色。
我已经在 Xcode 13 beta 5 上测试了我的应用程序,导航栏为“白色”,并且导航栏上的文本不可见。
在https://developer.apple.com/forums/thread/682420的苹果开发者论坛中,它指出“在 iOS 15 中,UIKit 已将scrollEdgeAppearance(默认情况下会生成透明背景)的使用扩展到所有导航栏”。要恢复旧的外观,您必须采用新的 UINavigationBar 外观 API
我将以下代码(来自上面的链接)添加到应用程序委托“application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions”:
if #available(iOS 13, *) {
let navigationController = UINavigationController(navigationBarClass: nil, toolbarClass: nil)
let navigationBar = navigationController.navigationBar
let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = UIColor(red: 0.0/255.0, green: 125/255.0, blue: 0.0/255.0, alpha: 1.0)
navigationBar.standardAppearance = appearance;
navigationBar.scrollEdgeAppearance = navigationBar.standardAppearance
navigationBar.isTranslucent = false
}
Run Code Online (Sandbox Code Playgroud)
这并不能解决问题。我仍然在故事板编辑器中为导航栏设置了自定义色调。我是否需要删除自定义色调,或者我是否错误地实现了外观 API?
我刚刚在我的应用程序上运行了预启动测试,报告显示 com.android.bluetooth 发生本机崩溃。我以前从未见过这种情况,也没有太多阅读崩溃日志的经验。
这是日志:
backtrace:
#00 pc 0x0000000000051994 /apex/com.android.runtime/lib64/bionic/libc.so (abort+164)
#01 pc 0x00000000006d27f8 /apex/com.android.art/lib64/libart.so (art::Runtime::Abort(char const*)+108)
#02 pc 0x0000000000016ea8 /apex/com.android.art/lib64/libbase.so (android::base::SetAborter(std::__1::function<void (char const*)>&&)::$_3::__invoke(char const*)+80)
#03 pc 0x0000000000009de0 /system/lib64/liblog.so (__android_log_assert+292)
#04 pc 0x0000000000a22f14 /apex/com.android.btservices/lib64/libbluetooth_jni.so (base::internal::Invoker<base::internal::BindState<bluetooth::hal::HciHalHidl::Start()::'lambda'()>, void ()>::RunOnce(base::internal::BindStateBase*)+32)
#05 pc 0x0000000000a0ffd8 /apex/com.android.btservices/lib64/libbluetooth_jni.so (bluetooth::os::Alarm::on_fire()+108)
#06 pc 0x0000000000a115b8 /apex/com.android.btservices/lib64/libbluetooth_jni.so (bluetooth::os::Reactor::Run()+584)
#07 pc 0x0000000000a122b4 /apex/com.android.btservices/lib64/libbluetooth_jni.so (bluetooth::os::Thread::run(bluetooth::os::Thread::Priority)+176)
#08 pc 0x0000000000a1243c /apex/com.android.btservices/lib64/libbluetooth_jni.so (void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (bluetooth::os::Thread::*)(bluetooth::os::Thread::Priority), bluetooth::os::Thread*, bluetooth::os::Thread::Priority> >(void*)+68)
#09 pc 0x00000000000b63b0 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208)
#10 pc 0x00000000000530b8 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
Google Pixel 2 (Arm) (virtual)
1080x1920 …Run Code Online (Sandbox Code Playgroud)