2009-06-11 36 views
16

iPhoneアプリケーションで基本的なドラッグ/ドロップ機能が試行されました。次のようにこれをやろうとしているためiPhoneのドラッグ/ドロップ

私の現在のコードは次のとおりです。

- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event 
{ 
    UITouch *touch = [touches anyObject]; 

    CGPoint location = [touch locationInView:self]; 
    self.center = location; 
} 

このコードは、それが周りにタッチし、次ながら、ちらつき触れたのUIViewの結果を持っています。それを少しでも遊んだ後、私はUIViewが画面の0,0の位置から現在タッチされている位置までちらつくように見えることに気付きました。

私が間違っていることは何ですか?

+0

このビューはこれですか?あなたのアプリにはどのような意見がありますか? –

+0

アプリケーションは、単一のビューを使用してレンダリングし、インタラクティブなコンポーネントのサブビューを使用します。このコードは、UIImageViewから継承するクラス実装の中にあります。 – Simon

答えて

21

スーパープロパティの座標系でcenterプロパティを指定する必要がありますが、そのサブビューの観点からタッチイベントに場所を問い合わせています。代わりに、次のようにsuperviewの座標に基づいて質問してください:

- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event { 
    UITouch *touch = [touches anyObject]; 
    CGPoint location = [touch locationInView:self.superview]; // <--- note self.superview 

    self.center = location; 
} 
+0

あまりにも明白な解決策を見逃しているようですが、愚かな私。明日それをチェックし、結果、あなたのおかげで戻ってくる! – Simon

+0

すべて、今働いて、もう一度ありがとう。 – Simon

関連する問題