簡體   English   中英

iOS 13 UIViewController 模態表示陰影

[英]iOS 13 UIViewController modal presentation shadow

我已經在 iOS >=13 中展示了視圖 controller。 根視圖具有清晰的背景:

view.backgroundColor = .clear

白色背景的子視圖有一些頂部偏移,如下所示:

在此處輸入圖像描述

一切正常,但是當我嘗試通過向下滑動將其關閉時,我看到呈現視圖 controller 的略微可見陰影:

在此處輸入圖像描述

是否可以在模態演示中消除這種陰影?

更新:經過進一步調查,這似乎不是可以改變的。 It's a private UIKit View setup by iOS and is a new addition in iOS 13. See 19:50 at https://developer.apple.com/videos/play/wwdc2019/224/

對於我自己的應用程序/游戲,我將尋求創建一個自定義 UIModalPresentationStyle 來實現我想要的外觀。

您還可以通過簡單地呈現 as.fullScreen 或其他呈現樣式而不是這種新的工作表方法來緩解這種情況。


我一直在努力尋找自己的答案。 到目前為止,我只發現通過設置 layer.shadowColor 來清除它可以解決這個問題,但僅限於 iPhone。 我在 iPad 上找不到如何解決此問題。 覆蓋 func viewDidLoad() { view.layer.shadowColor = UIColor.clear.cgColor }

我有你的解決方案

extension UIViewController {
    func removeBackgroundForParents() {
        var superview = view.superview
        while superview != nil {
            superview?.layer.backgroundColor = UIColor.clear.cgColor
            superview?.layer.shadowColor = UIColor.clear.cgColor
            superview = superview?.superview
        }
    }
}

並在您的視圖中使用它 controller。

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    
    removeBackgroundForParents()
}

您無法從默認模式演示文稿中刪除陰影。 但是您可以自由地編寫自己的自定義過渡 animation 和自定義演示 controller,在這種情況下,是否插入陰影視圖(調光視圖)取決於您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM