我想检查哪个子视图现在在屏幕上可见或被其他视图覆盖,我无法通过以下条件进行操作。
if (viewController.isViewLoaded && viewController.view.window) {
// viewController is visible
}
有人能给我一个子视图的例子吗?
如果viewController是我添加子视图的主控制器,我想检查一下这个控制器的子视图子项的这个条件。
答案 0 :(得分:0)
您可以通过以下代码段获取最顶层的视图
topMostSubView = [[[[UIApplication sharedApplication] keyWindow] subviews] lastObject];
通常这会给你顶视图,但不保证它对用户可见。它可能在屏幕外,具有0.0的alpha值,或者例如可以具有0x0的大小。
也可能是keyWindow没有子视图,所以你应该首先测试它。
如果你想在最顶层的视图中添加另一个子视图,你可以使用addSubview直接将它添加到keyWindow:它将立即成为最顶层的视图。