【问题标题】:3D Touch Peek - Background Blur Color3D Touch Peek - 背景模糊颜色
【发布时间】:2017-03-03 17:07:25
【问题描述】:

当调用 3D Touch Peek 时,发生的背景模糊,我注意到它会有所不同。

例如,在 iMessage 中它是 LIGHT 模糊,但在 FaceTime App 中是 DARK 模糊。

(虽然下图可能不是显示对比度的最佳示例,但您可以在 iOS 10 中更好地注意到它)

这是根据上下文亮度自动完成的吗?背景视图亮度?查看上下文亮度?还是我们对此有任何控制权?


extension ChatTableViewController: UIViewControllerPreviewingDelegate {
    func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
        guard let indexPath = tableView.indexPathForRow(at: location) else { return nil }

        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let viewController = storyboard.instantiateViewController(withIdentifier: ChatDetailViewController.identifier)
        guard let chatDetailViewController = viewController as? ChatDetailViewController else { return nil }

        chatDetailViewController.chatItem = chatItem(at: indexPath)
        let cellRect = tableView.rectForRow(at: indexPath)
        previewingContext.sourceRect = previewingContext.sourceView.convert(cellRect, from: tableView)
        chatDetailViewController.isReplyButtonHidden = true

        return chatDetailViewController
    }

    func previewingContext(_ previewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController) {
        if let chatDetailViewController = viewControllerToCommit as? ChatDetailViewController {
            chatDetailViewController.isReplyButtonHidden = false
        }
        show(viewControllerToCommit, sender: self)
    }
}

【问题讨论】:

    标签: ios xcode uiviewcontroller 3dtouch peek


    【解决方案1】:

    我在弄乱UIViewController 的一些属性,试图弄清楚如何做到这一点,结果发现更改preferredStatusBarStyle 会改变模糊颜色。

    要将窥视模糊样式从浅色更改为深色,您可以将 preferredStatusBarStyle.default 更改为 .lightContent

    class MyViewController: UIViewController{
        override var preferredStatusBarStyle: UIStatusBarStyle{
            return .lightContent
        }
    }
    

    这也适用于隐藏状态栏

    class MyViewController: UIViewController{
        override var prefersStatusBarHidden: Bool{
            return true
        }
    
        override var preferredStatusBarStyle: UIStatusBarStyle{
            return .lightContent
        }
    }
    

    【讨论】:

    • 你太棒了!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    相关资源
    最近更新 更多