美文网首页
判断一个控件是否真正显示在主窗口

判断一个控件是否真正显示在主窗口

作者: ios_stand | 来源:发表于2017-03-28 14:50 被阅读0次

    UIView添加一个分类。

    #import <UIKit/UIKit.h>
    
    @interface UIView (SWLExtension)
    
    /**
     * 判断一个控件是否真正显示在主窗口
     */
    - (BOOL)isShowingOnKeyWindow;
    
    @end
    
    
    - (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;
    }
    

    相关文章

      网友评论

          本文标题:判断一个控件是否真正显示在主窗口

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