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

判断一个View是否显示在屏幕上

作者: KeepFighting | 来源:发表于2016-03-06 15:27 被阅读1458次

CGgemetry文件提供了
CGRectContainsRect(CGRect rect1, CGRect rect2) 来判断rect1 是否包含了rect2
CGRectIntersectsRect(CGRect rect1, CGRect rect2) 来判断 rect1 与rect2 是否重叠
CGRectContainsPoint(CGRect rect, CGPoint point) 来判断 点point 是否在rect 里面

判断的前提: 两个rect必须是在同一个坐标系下;得出的结果才是正确的.
一般先把frame 转换到keywindow坐标系下,在进行判断.
坐标系转换:

- (CGRect)convertRect:(CGRect)rect toView:(nullable UIView *)view;
将blueView的某块区域(这里是本身的bounds),转换到 keyWindow的坐标系下(nil 默认表示keyWindow)
CGRect rect1 = [self.blueView convertRect:self.blueView.bounds toView:nil];

相关文章

网友评论

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

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