gpt4 book ai didi

swift - 没有覆盖的 UIPopoverPresentationController

转载 作者:行者123 更新时间:2023-11-28 06:05:22 25 4
gpt4 key购买 nike

我正在使用 UIPopoverPresentationController 实现弹出 View 。

enter image description here

问题在于,默认情况下, Controller 有一个半径较大的阴影。

我想禁用它 - 覆盖。

我试过:

  1. 自定义布局阴影(使用 UIPopoverBackgroundView):

    layer.shadowColor = UIColor.white.withAlphaComponent(0.01).cgColor
    layer.shadowOffset = .zero
    layer.shadowRadius = 0
  2. 在 View 调试中 - 我可以在弹出的 4 个带有灰色渐变背景的 ImageView 后面看到:

enter image description here

我确信这是在弹出框后面显示叠加层的默认行为。

如何禁用它?

我找到了 thisthis 。但这些都没有帮助。

最佳答案

如果仔细查看 View 层次结构,您会注意到阴影层 _UIMirrorNinePatchView 是 UITransitionView 的子层,与 UIPopoverView 相同 - 两者都在同一层。

views hierarchy picture

在这种情况下,你可以尝试像这样隐藏这个子层:

override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()

if let shadowLayer = UIApplication.shared.windows.first?.layer.sublayers?[1].sublayers?[1] {
shadowLayer.isHidden = true
}
}

确保将其隐藏在 viewDidLayoutSubviews 中以避免与丢失子层或子层闪烁相关的异常。

关于swift - 没有覆盖的 UIPopoverPresentationController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48399515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com