如何检查目标 C 屏幕上当前显示的子视图?
Posted
技术标签:
【中文标题】如何检查目标 C 屏幕上当前显示的子视图?【英文标题】:How to check which subview is currently displayed on screen in objective C? 【发布时间】:2015-10-01 10:50:29 【问题描述】:我想检查哪个子视图现在在屏幕上可见或被其他视图覆盖,在以下情况下我无法做到这一点。
if (viewController.isViewLoaded && viewController.view.window)
// viewController is visible
谁能给我一个子视图的例子?
如果 viewController 是我添加子视图的主控制器,我想检查此控制器的子视图子之一的条件。
【问题讨论】:
【参考方案1】:您可以通过以下代码sn-p获得最顶部的视图
topMostSubView = [[[[UIApplication sharedApplication] keyWindow] subviews] lastObject];
通常这将为您提供顶视图,但不能保证它对用户可见。例如,它可能不在屏幕上,alpha 为 0.0,或者大小为 0x0。
也可能是 keyWindow 没有子视图,所以你应该先测试一下。
如果你想在最顶层的视图上添加另一个子视图,你可以简单地使用 addSubview: 将它直接添加到 keyWindow 中,它会立即成为最顶层的视图。
【讨论】:
以上是关于如何检查目标 C 屏幕上当前显示的子视图?的主要内容,如果未能解决你的问题,请参考以下文章