2013-06-27 28 views
0

我有如下定義兩個矩形。CGRectContainsRect給人錯誤的值

CGRect rect1 = CGRectMake(64.000000,1100.500000,704.000000,1971.500000); 
CGRect rect2 = CGRectMake(88.000000,1757.416626,100.000000,1780.416626); 

現在我知道RECT2包含在Rect1的,我們可以看到,從點,很明顯,CGRectContainsRect應該給TRUE值。但是,當我登錄該值,它是FALSE

if(CGRectContainsRect(rect1, rect2)){ 
    printf("yes1\n"); 
}else{ 
    printf("No1\n"); 
} 

上面的代碼給出了錯誤。任何人都可以幫助我解決這個問題。

回答

2

CGRectContainsRect當一個矩形是完全第二的範圍內包含纔會返回true。在你的例子中,rect2的高度與rect1重疊。

您正在尋找CGRectIntersectsRect

+0

是的,你是絕對正確的。但是從我使用的矩形中,我們可以很容易地看到,rect1包含rect2。 – Renaissance

+0

rect1不包含rect2。 rect1的y點從1100到3071,rect2從1757到3537. rect2的頂部溢出過去的rect1。 –

+0

是的,你是正確的,其實我誤解CGRectMack的概念,這就是爲什麼越來越錯誤的數據,你的幫助是很大的。 – Renaissance