我有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 有效吗?
答案 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之间。 因此,你的观点是在矩形内部。