target-c отключить перетаскивание в UIButton - PullRequest
0 голосов
/ 29 октября 2010

Я хочу отключить перетаскивание UIButton в XCode, в любом случае, сделать это?

любое решение поможет

Спасибо

Ответы [ 2 ]

1 голос
/ 13 ноября 2014

Вы не можете отключить сенсорные события перетаскивания, но можете использовать альтернативную обработку их.Вам нужно обрабатывать обработчики событий Touch.Когда мы проводим влево или вправо, происходит событие TouchCancel, а когда вы проводите пальцем вверх или вниз, вызывается TouchDragExit.Убедитесь, что реализованы оба.

@ property (nonatomic) BOOL buttonFullyTouched;,,,// Touch Down Event

- (IBAction)filterTouchedDown:(id)sender
{    
    _nameButton.selected = NO;
    _codeButton.selected = NO;
    _dateButton.selected = NO;

    _filterFullyTouched = NO;
}

// Touch Drag Exit Event

- (IBAction)buttonDragExit:(id)sender
{
    if (!_buttonFullyTouched)
    {
        UIButton *randomButton = (UIButton *)[_groupView viewWithTag:_previousButtonSelectedTag + 2000];
        randomButton.selected = YES;
    }
}

// Touch Cancel Event

- (IBAction)buttonTouchCancel:(id)sender
{
    if (!_buttonFullyTouched)
    {
        UIButton *randomButton = (UIButton *)[_groupView viewWithTag:_previousButtonSelectedTag + 2000];
        randomButton.selected = YES;
    }
}

// Событие TouchUpInside

- (IBAction)groupButtonTapped:(id)sender
{
    _nameButton.selected = NO;
    _codeButton.selected = NO;
    _dateButton.selected = NO;

    _buttonFullyTouched = YES;

    // logic for further code
}
0 голосов
/ 31 октября 2010

Если вы хотите запретить пользователю перетаскивать его одним касанием, посмотрите на класс UIControl. Специально принять к сведению:

- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents

Если вы используете InterfaceBuilder, вы должны посмотреть опции, доступные для событий (в окне инспектора, вторая вкладка).

...