我需要检测前面的哪个视图(当前可见).我怎样才能做到这一点?
这是我想做的事情:
if ( ! <<methodToTellIfViewAIsInFront>>) {
[viewA prepareToDisplay];
[window bringSubviewToFront: viewA];
}
Run Code Online (Sandbox Code Playgroud)
ama*_*ttn 13
UIView不一定有前面的概念.UIWindows可以是关键还是不关键,但它不是一回事.
您可以将视图带到前面,但这并不意味着它是可见的还是不可见的.请记住,视图可以是任何大小.
深埋在层次结构中的UIView可以是部分可见的,可以是模糊的,也可以是一些半透明视图的背后.同样,如果修改了不透明度值或隐藏标志,则前面的视图可能根本不可见.
我想你要做的是检查你的superview或UIWindow的子视图NSArray并检查它.我不记得哪个是前面的,但它是第一个或最后一个对象.
子视图是用画家的方法绘制的.视图按从最远到最近的顺序绘制,最后绘制的对象是"前面".
如果 viewA 在前面,以下将返回 YES:
[[viewA.superview.subviews lastObject] isEqual: viewA]
Run Code Online (Sandbox Code Playgroud)