2011-09-10 8 views
2

私は画面をスクロールするときにタッチ位置を取得しようとします。 touchBegin()から取得しようとしましたが、できません。 これは、スクロール中にtouchBeginが呼び出されなかったためです。 どうすればこの問題を解決できますか? すぐに私に答えてください。scrollViewDidScrollメソッドでタッチ位置を取得するにはどうすればよいですか?

+0

コンテンツのサイズが私の見解フレームよりも大きいですが、私はtouchesBeganメソッドを入力することはできません。 scrollViewDidScrollメソッドが呼び出され、touchesBeganメソッドがフックされるためです。だから私は見ることができない位置に触れる – bTagTiger

答えて

2

私は自分の解決策を見つけました。

まず、scrollView.frameにscrollView.contentSizeを設定します。それは、touchesBeganは私が欲しいものscrollView.contentSizeを設定する第二に、scrollViewDidScroll

- (id)initWithFrame:(CGRect)frame 
{ 
    .... 
    self.frame = frame 
    self.contentSize = frame; 
    .... 
} 

を呼び出すことはできません。イベントはscrollViewDidScrollに移動します。あなたは何かをすることができます。

Thrid、scrollViewDidEndDeceleratingでcontentSizeを設定し、contentOffestを保存します。

-(void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
{ 
    CGPoint pointTemp = self.contentOffset; 
    self.contentSize = self.frame.size; 
    self.contentOffset = pointTemp; 
} 

これは哀れなやり方です。あなたが他の知っている場合は、scrollviewジェスチャー認識を使用して、私

2

を教えてください。

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    CGPoint positionInView = [scrollView.panGestureRecognizer locationInView:myView]; 
} 
関連する問題