Cómo hacer que UIB se pueda arrastrar pero no desencadenar evento de clic

Usualmente uso este método para implementar el UIBbutton mobile;

[button addTarget:self action:@selector(dragMoving:withEvent:) forControlEvents:UIControlEventTouchDragInside]; 

Pero activará el evento touchUpInside al mismo time, y necesito el evento touchUpInside para hacer otras cosas.

Entonces, ¿alguien sabe cómo evitar esto?

Muchas gracias;

use este código a continuación para resolverlo;

  [button addTarget:self action:@selector(touchDown:withEvent:) forControlEvents:UIControlEventTouchDown]; [button addTarget:self action:@selector(touchDragInside:withEvent:) forControlEvents:UIControlEventTouchDragInside]; [button addTarget:self action:@selector(touchUpInside:withEvent:) forControlEvents:UIControlEventTouchUpInside]; - (void) touchUpInside :(UIControl*)c withEvent:ev{ NSLog(@"touch Up inside"); if (count) { NSLog(@"here I can do something about clicking event"); } } - (void) touchDown:(UIControl*)c withEvent:ev{ NSLog(@"touch Down"); count = YES; } -(void) touchDragInside:(UIControl*)c withEvent:ev{ NSLog(@"touch drag inside"); c.center = [[[ev allTouches] anyObject] locationInView:self.view]; count = NO; } 

En realidad, la mejor manera de lograr esto es usar UIPanGestureRecognizer y agregarlo al button. Maneja muy bien el arrastrar y también puedes tocar sin necesidad de hacer nada más.