美文网首页
判断View是否显示在屏幕上

判断View是否显示在屏幕上

作者: 怪兽密保 | 来源:发表于2016-10-19 18:23 被阅读0次
新建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>

相关文章

网友评论

      本文标题:判断View是否显示在屏幕上

      本文链接:https://www.haomeiwen.com/subject/uhswyttx.html