新建UIView的分类
1.声明方法:
<pre>
/** 该方法用于判断当前视图是否显示在Window上*/
- (BOOL)isShowingOnKeyWindow;
</pre>
2.实现方法
<pre>
/**
- 该方法用于判断当前视图是否显示在Window上
- @return YES表示在,NO表示不在
*/
-
(BOOL)isShowingOnKeyWindow
{
// 主窗口
UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;// 以主窗口左上角为坐标原点, 计算self的矩形框
CGRect newFrame = [keyWindow convertRect:self.frame fromView:self.superview];
CGRect winBounds = keyWindow.bounds;// 主窗口的bounds 和 self的矩形框 是否有重叠
BOOL intersects = CGRectIntersectsRect(newFrame, winBounds);return !self.isHidden && self.alpha > 0.01 && self.window == keyWindow && intersects;
}
</pre>
3.使用方法
<pre>
[self.view isShowingOnKeyWindow]
//或者
self.view.isShowingOnKeyWindow
</pre>