Ios 如何使UIButton可拖动但不';t触发点击事件

Ios 如何使UIButton可拖动但不';t触发点击事件,ios,uibutton,Ios,Uibutton,我通常使用这种方法来实现UIButton移动 [button addTarget:self action:@selector(dragMoving:withEvent:) forControlEvents:UIControlEventTouchDragInside]; 但它会同时触发touchUpInside事件,我需要touchUpInside事件来做一些其他事情 那么有人知道如何避免这种情况吗 非常感谢 使用下面的代码来解决它 [button addTarget:self action

我通常使用这种方法来实现UIButton移动

[button addTarget:self action:@selector(dragMoving:withEvent:) forControlEvents:UIControlEventTouchDragInside];
但它会同时触发touchUpInside事件,我需要touchUpInside事件来做一些其他事情

那么有人知道如何避免这种情况吗

非常感谢

使用下面的代码来解决它

  [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;
}

实际上,实现这一点的最佳方法是使用UIPangestureRecognitor并将其添加到按钮中。它可以很好地处理拖动操作,您也可以点击它而无需执行任何其他操作。

查看可能对您有帮助的选项。解决了它。我只是在触地内线比赛中打了一面旗子。