iOS 分享 sheet/extension 不褪色状态栏
iOS share sheet/extension not fading status bar
我有一个分享 sheet/extension,出于某种原因,状态栏没有淡出(即使它淡出屏幕的其余部分)。我附上了一张图片来演示这个问题。我只是想让整个屏幕淡出,包括状态栏。过去,我遇到过类似的问题,UIAlertControllers 没有淡化状态栏。
您是否在呈现 UIAlertController 并将 animated: 设置为 true?我无法使用 buo.showShareSheet() 方法重现此问题:
let buo = BranchUniversalObject(canonicalIdentifier: "referrer/\(UUID().uuidString)")
buo.title = "Test"
buo.contentDescription = "Test"
let lp: BranchLinkProperties = BranchLinkProperties()
lp.feature = "referral"
lp.addControlParam("user_id", withValue: UUID().uuidString)
buo.showShareSheet(with: lp, andShareText: instructionString, from: self) { (params, success) in
}
因为我认为这是一个应用程序范围的问题,所以我开始查看我的 AppDelegate 而不是单独的视图控制器。我发现一个函数 setStatusBarBackgroundColor(color: UIColor.white)
在应用程序启动时调用,这似乎是原因。
func setStatusBarBackgroundColor(color: UIColor) {
guard let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView else { return }
statusBar.backgroundColor = color
}
坦率地说,我不确定为什么要写这个,但删除它似乎可以完全解决问题。
我认为最好只在必要时 UIViewControllers
(需要时)使用
进行调整
override var preferredStatusBarStyle: UIStatusBarStyle {
return UIStatusBarStyle.default //dark content
}
或关于育儿UINavigationController
,以避免您遇到的上述错误。
我有一个分享 sheet/extension,出于某种原因,状态栏没有淡出(即使它淡出屏幕的其余部分)。我附上了一张图片来演示这个问题。我只是想让整个屏幕淡出,包括状态栏。过去,我遇到过类似的问题,UIAlertControllers 没有淡化状态栏。
您是否在呈现 UIAlertController 并将 animated: 设置为 true?我无法使用 buo.showShareSheet() 方法重现此问题:
let buo = BranchUniversalObject(canonicalIdentifier: "referrer/\(UUID().uuidString)")
buo.title = "Test"
buo.contentDescription = "Test"
let lp: BranchLinkProperties = BranchLinkProperties()
lp.feature = "referral"
lp.addControlParam("user_id", withValue: UUID().uuidString)
buo.showShareSheet(with: lp, andShareText: instructionString, from: self) { (params, success) in
}
因为我认为这是一个应用程序范围的问题,所以我开始查看我的 AppDelegate 而不是单独的视图控制器。我发现一个函数 setStatusBarBackgroundColor(color: UIColor.white)
在应用程序启动时调用,这似乎是原因。
func setStatusBarBackgroundColor(color: UIColor) {
guard let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView else { return }
statusBar.backgroundColor = color
}
坦率地说,我不确定为什么要写这个,但删除它似乎可以完全解决问题。
我认为最好只在必要时 UIViewControllers
(需要时)使用
override var preferredStatusBarStyle: UIStatusBarStyle {
return UIStatusBarStyle.default //dark content
}
或关于育儿UINavigationController
,以避免您遇到的上述错误。