【问题标题】:How to check which subview is currently displayed on screen in objective C?如何检查目标 C 屏幕上当前显示的子视图?
【发布时间】:2015-10-01 10:50:29
【问题描述】:

我想检查哪个子视图现在在屏幕上可见或被其他视图覆盖,在以下情况下我无法做到这一点。

if (viewController.isViewLoaded && viewController.view.window) {
  // viewController is visible
}

谁能给我一个子视图的例子?

如果 viewController 是我添加子视图的主控制器,我想检查此控制器的子视图子之一的条件。

【问题讨论】:

    标签: ios objective-c uiview subviews


    【解决方案1】:

    您可以通过以下代码sn-p获得最顶部的视图

    topMostSubView = [[[[UIApplication sharedApplication] keyWindow] subviews] lastObject];
    

    通常这将为您提供顶视图,但不能保证它对用户可见。例如,它可能不在屏幕上,alpha 为 0.0,或者大小为 0x0。

    也可能是 keyWindow 没有子视图,所以你应该先测试一下。

    如果你想在最顶层的视图上添加另一个子视图,你可以简单地使用 addSubview: 将它直接添加到 keyWindow 中,它会立即成为最顶层的视图。

    【讨论】:

      猜你喜欢
      • 2012-10-06
      • 2020-06-21
      • 1970-01-01
      • 2011-03-05
      • 2012-03-20
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多