touchesBegan
,touchesMoved
,touchesEnded
で始まる。あなたのUIViewサブクラスでこれらをオーバーライドすれば、イベントシステムを学ぶことができます。あなたは、イベントがそうのように座標を取得することができます
- (void) touchesBegan:(NSSet *) touches withEvent:(UIEvent *) event
{
float x = [[touches anyObject] locationInView:self].x;
float y = [[touches anyObject] locationInView:self].y;
}
は次にように異なるビューとの間の座標を変換するためのもののトンがあります。理解したら、すでに見つけたもの、UIGestureRecognizer
で必要なものを処理できます。
ドラッグジェスチャ認識ツールが必要になります。 UIPanGestureRecognizer
のlocationInView:
セレクタを使用すると、いつでもどこにいるかを確認できます。
- (void) thingDragged:(UIPanGestureRecognizer *) gesture
{
CGPoint location = [gesture locationInView:self];
if ([gesture state] == UIGestureRecognizerStateBegan) {
// Drag started
} else if ([gesture state] == UIGestureRecognizerStateChanged) {
// Drag moved
} else if ([gesture state] == UIGestureRecognizerStateEnded) {
// Drag completed
}
}
ます:
UIPanGestureRecognizer *dragDropRecog = [[UIPanGestureRecognizer alloc] initWithTarget:yourView action:@selector(thingDragged:)];
[yourView addGestureRecognizer:dragDropRecog];
は、その後、あなたのビューでセレクタthingDragged:
を実装する必要があります。
あなたがいないあなたがしようとしていたターゲット・アクションのもので、そのようなあなたのジェスチャー認識を追加します変更されたビットでドラッグされているビューを翻訳し、終了セクションのドロップを処理します。
ユーザーがのviewDidLoadでこれを追加する必要があります。 UIPanGestureRecognizer *パンナー= [[UIPanGestureRecognizerのalloc] initWithTarget:自己アクション:@selector(panWasRecognized: )]; [_viewaddGestureRecognizer:panner]; –
また、ストーリーボードまたはXIBにジェスチャ認識機能を追加することもできます。 –
そうだけど、私があなたの答えに従ったとき、私はそれが私とはうまくいかないことを知りませんでした:D –