iOS:当视图位于弹出框后面时,我如何注意到?

Posted

技术标签:

【中文标题】iOS:当视图位于弹出框后面时,我如何注意到?【英文标题】:iOS: How do I notice when a view is behind a popover? 【发布时间】:2016-10-27 13:11:37 【问题描述】:

在我的应用程序中,我显示了一个弹出框,这会导致弹出框后面的所有着色 UIImageViews 去饱和。我希望这种行为也适用于屏幕上的 UILabel 和自定义 UIView 子类。为此,我需要观察弹出框何时打开以及何时关闭,以便手动更新颜色。

我的第一个方法是观察 UIView 的 tintColortintAdjustmentMode 属性。像这样:

override var tintAdjustmentMode: UIViewTintAdjustmentMode 
    didSet 
        // This does not get called
    

然而,这些似乎没有被调用,即使self.tintAdjustmentMode 等于true,当我在显示弹出框时手动检查时。

另一种方法是从显示弹出框的 ViewController 中手动调用辅助方法(在本例中为 CollectionViewController)。问题在于,当另一个 ViewController(比如封闭的导航控制器)呈现弹出框时,这不起作用。所以这也不是我真正想要的。

还有哪些其他方法可以让我对在视图的当前视图控制器上显示的弹出框做出反应?

【问题讨论】:

【参考方案1】:

为了回答我自己的问题,有一个 UIView 方法 tintColorDidChange 可以覆盖。

override func tintColorDidChange() 
    // This gets called

苹果参考:https://developer.apple.com/reference/uikit/uiview/1622620-tintcolordidchange

【讨论】:

以上是关于iOS:当视图位于弹出框后面时,我如何注意到?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 弹出框在关闭后不会消失

弹出框内的iOS 7 UITableView

iOS UITesting 如何关闭弹出框(iPad 弹出框不提醒样式)

仅当在 iOS 7 弹出框内使用视图时,如何使视图背景透明?

没有箭头无法定位弹出框

弹出框显示在表格视图中长用户输入表单的顶部