2013-10-11 25 views
0

有了這個代碼,我想檢測時的UIButton移動通過與他的手指在用戶對象被釋放了另一個的UIButton(或UIImageView的):CGRectContainsPoint在UIScrollView中

CGPoint dropPoint = [gesture locationInView:gesture.view.superview]; 

if (CGRectContainsPoint(btn.frame, dropPoint)) { 

.... 

幹訓局是被拖動的UIButton而dropPoint是用戶拿走手指的視圖中的位置。如果在self.view中使用bnt,該方法完美工作,但如果btn在UIScrollView中則不起作用。我如何使它在UIScrollView中工作?

回答

1

dropPoint需要在btn的座標系中。假設btngesture.view.superview的直接子視圖:

CGPoint dropPoint = [gesture locationInView:gesture.view.superview]; 

CGPoint dropPointInBtn = [gesture.view.superview convertPoint:dropPoint toView:btn]; 

if (CGRectContainsPoint(btn.frame, dropPointInBtn)) { 

.... 
+0

感謝您的回答。 btn位於主視圖的UIScrollView中。此代碼不起作用... – Alessandro

+0

但通過執行CGPoint dropPointInBtn = [gesture.view.superview convertPoint:dropPoint toView:my scroll view];作品,但不是當我向左或向右滑動滾動視圖... – Alessandro

+0

@Alessandro - 當'UIScrollView'滾動時,使用滾動視圖的'contentOffset'屬性來調整放置點。 – bobnoble