【问题标题】:iOS share sheet/extension not fading status bariOS共享表/扩展不褪色状态栏
【发布时间】:2019-03-25 12:24:49
【问题描述】:

我有一个共享表/扩展,由于某种原因,它不会淡出状态栏(即使它会淡化屏幕的其余部分)。我已经包含了一张图片来演示这个问题。我只是想让整个屏幕消失,包括状态栏。过去,我遇到过 UIAlertControllers 没有淡出状态栏的类似问题。

【问题讨论】:

    标签: ios swift branch.io ios-sharesheet


    【解决方案1】:

    我认为最好只需要UIViewControllers(在需要时)通过使用来调整它,

    override var preferredStatusBarStyle: UIStatusBarStyle {
        return UIStatusBarStyle.default  //dark content
    }
    

    或在育儿UINavigationController,以避免您遇到的上述错误。

    【讨论】:

    • 确实如此。也许在早期的 iO​​S 版本中(或者由于另一个现在更改的配置文件),状态栏在所有 ViewController 上都显示为黑色/深色,所以我只是将它放在 AppDelegate 中并忘记了它。
    【解决方案2】:

    由于我将此视为应用程序范围的问题,因此我开始查看我的 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
    }
    

    坦率地说,我不确定我为什么要写这个,但删除它似乎可以完全解决问题。

    【讨论】:

      【解决方案3】:

      您是否正在呈现带有动画的 UIAlertController:设置为 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
      
              }
      

      【讨论】:

      • 是的,如果我在使用 UIAlertController 时看到此问题,我正在执行“animated:true”。我刚刚发现了这个问题;详情请看我的回答。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-12
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多