CGRectContainsPoint如何工作?

时间:2016-06-24 07:52:43

标签: ios objective-c

我有Rect和origin。我会检查我的原点是否是矩形。

我的Rect是:

  

aRect =(origin =(x = 0,y = 44),size =(width = 768,height = 306))

我的起源是:

  

ptOrigin =(x = 201,y = 313)

我会选中Like This

if (!CGRectContainsPoint(aRect, ptOrigin) )
{
     [self.scrollView scrollRectToVisible:aRectTextView animated:YES];
}

但它给出了结果原点在里面,但是我的Y = 313大于Rect的高度(306)那么为什么它给出了内部?所以我想知道如何 CGRectContainsPoint 有效吗?

2 个答案:

答案 0 :(得分:4)

逻辑如下:该点在iff:

ptOrigin.x > aRect.origin.x
ptOrigin.y > aRect.origin.y
ptOrigin.x < aRect.origin.x + aRect.size.width
ptOrigin.y < aRect.origin.y + aRect.size.height

在你的情况下导致

201 > 0
313 > 44
201 < 0 + 768
313 < 44 + 306

由于所有4个都是真的,因此也是如此。

答案 1 :(得分:2)

因为你的矩形高度是306,但同样的矩形原点是84. 所以,你的矩形从y = 44到y = 350(即306高度+ 44的原点)你的ptOrigin.y是313,它在44到350之间。 因此,你的观点是在矩形内部。