繁体   English   中英

如何检查目标C中当前显示在屏幕上的子视图?

[英]How to check which subview is currently displayed on screen in objective C?

我想检查哪个子视图现在在屏幕上可见或被其他视图覆盖,我无法使用以下条件进行操作。

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

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

如果viewController是我在其中添加子视图的主控制器,则我想检查该控制器的子视图之一的这种情况。

您可以通过以下代码片段获得最高的视图

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

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

也可能是keyWindow没有子视图,因此您应该首先进行测试。

如果要在最顶部的视图上添加另一个子视图,只需使用addSubview:直接将其直接添加到keyWindow中,它将立即成为最顶部的视图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM