質問

私は私のアプリでは、iPhoneの画面の周りにUIImageViewをドラッグしようとしています。

現在、私が設定したドラッグ機能が細かく、画像をドラッグすると、画面の周りに移動し、トラブルは、あなたがそれを動かすために画像ビューをドラッグする必要がないことです、あなたはまた、画面上の任意の場所にドラッグすることができますそしてそれは、画像を移動します。 私は本当にこの問題を解決するために何をすべきかを考えることはできませんので、私はこのプラットフォームに新しいです。 画像をドラッグする私の現在のコードは次のとおりです。

 - (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
    CGPoint pt = [[touches anyObject] locationInView:pig];
    startLocation = pt;


}
- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
    CGPoint pt = [[touches anyObject] locationInView:pig];
    CGRect frame = [pig frame];
    frame.origin.x += pt.x - startLocation.x;
    frame.origin.y += pt.y - startLocation.y;
    [pig setFrame: frame];
}

すべてのヘルプは大歓迎します。ちなみに豚はUIImageViewです。 また、私は私がイメージビュー「豚」のユーザーとの対話を設定する場合には、もはやできドラッグされていない画像を有効にし、それが設定されていない場合には有効にすることに気づいた。

役に立ちましたか?

解決

あなたはUIImageViewをサブクラス化し、直接その上にtouchesBegan:touchesMoved:を実装しようとすることができます。次にInterfaceBuilderでUIImageViewのためのあなたのサブクラスを選択します。

  

http://img.skitch.com/20090728-xetretcfubtcj7ujh1yc8165wj.jpg

ああ、今、あなたは再びユーザーとの対話を設定する必要があります...

他のヒント

あなたがそれを囲む開始/あなたのタイマースレッドに少なくともアニメーションシーケンスをコミットする必要があります:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.02]  /* 0.02 seconds suration*/

/* move pig coordinates here */

[UIView commitAnimations];

touchesMovedに新しい動きを保存し、タイマースレッドでそれらを処理します。

あなたはそれがドラッグ可能にし、ドラッグ可能なエリアを定義するためのUIViewのカテゴリを使用することができます。 https://github.com/rtoshiro/TXDragAndDropする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top