2011-03-13 109 views

回答

2

你可以找到你(最外層)視圖的座標UIImageView使用

CGRect r = [iv convertRect:iv.bounds toView:self.view]; 

然後,它檢查是否r的事矩形超出範圍,例如中像這樣:

CGRect i = CGRectIntersect(r,self.view.bounds); 

if (CGRectIsNull(i)) 
{ 
    NSLog(@"way out of bounds"); 
} else if (!CGRectEqualToRect(i,r)) { 
    NSLog(@"partly out of bounds"); 
} else { 
    NSLog(@"self.view envelopes imageview"); 
} 

當然,這要放在你的拖動代碼,與NSLog()語句替換爲相應的處理(例如,通過只在最後一種情況下更新的位置,或者通過翻譯RECT回到視圖中,如果需要)

+0

謝謝。我會試一試 – jarryd

+0

iv應該是什麼?我在另一個類中創建了draggableItem,而不是我創建它的那個類。難道我不只是爲我想要包裝的視圖編寫CGRect代碼? – jarryd

+0

'iv'會成爲你的'UIImageView'的指針。你可以硬編碼'iv.bounds',但它不會解決任何真正的問題 - 反正你需要指針'[iv convertRect:...]'調用。 – mvds

相關問題