Отмените касание UIButton при касании

У меня есть ситуация, когда пользователь будет касаться UIButton, и, хотя они уже могут касаться его, мне нужно иметь возможность отменить его или заставить его потерпеть неудачу.

Я попытался использовать button.enabled и userInteractionEnabled, но никто не работает «на лету». Оба должны быть установлены до начала касания.

Могу ли я заставить кнопку сбой после и во время ее касания?

5 Solutions collect form web for “Отмените касание UIButton при касании”

Вам нужно зарегистрировать два действия для вашей кнопки, один для прикосновения и один для прикосновения. В касании вниз вы можете решить, хотите ли вы отменить и направить вверх, чтобы записать фактическую логику для нажатия кнопки.

[button addTarget:self action:@selector(touchDown:) forControlEvents:UIControlEventTouchDown]; - (IBAction)touchDown:(id)sender { UIButton *b = (UIButton*)sender; // Call this if you wish to cancel the event tracking [b cancelTrackingWithEvent:nil]; } 

Одна вещь, которую вы можете решить, чтобы решить вашу проблему, – это настроить нажатый внешний вид кнопки в соответствии с вашими потребностями. Использование: – setBackgroundImage:@"NormalStateImage.png" forState: UIControlStateNormal – setBackgroundImage:@"HighlightedStateImage.png" forState: UIControlStateHighlighted

установите свойство adjustsImageWhenHighlighted в НЕТ, а свойство adjustsImageWhenDisabled – НЕТ

Это можно сделать для любого UIButton . Если вы хотите отменить кнопку, нажмите в то время, когда пользователь коснется ее, эти действия должны работать:

  1. Настройте обработчик событий, в которых необходимо проверить отмену. В этом случае, когда кнопка не работает.

    [yourButton addTarget: само действие: @selector (buttonIsDownHandler 🙂 forControlEvents: UIControlEventTouchDown];

  2. В обработчике определите, следует ли отменить печать

    – (IBAction) buttonIsDownHandler: (id) отправитель {if (needToCancelThisPress) {[yourButton cancelTrackingWithEvent: nil]; }}

  3. После UIControlEventTouchCancel будет вызываться обработчик кнопки для UIControlEventTouchCancel .

Отмена кнопки при нажатии может быть выполнена в любое время. Например, если вы хотите отслеживать, когда пользователь нажимает и удерживает слишком долго, вы можете запустить таймер в обработчике UIControlEventTouchDown , а затем отменить касание, когда истечет таймер.

Просто используйте переменную BOOL, которая указывает на то, что действие кнопки разрешено или нет, и проверьте, где это необходимо. Enabled и userinteractionenabled – это просто отключить прикосновения вообще

Не уверен в вашей проблеме, но вы можете иметь разные действия на основе контрольного события, как показано ниже.

 [button addTarget:self action:@selector(onTouchUpInside:) forControlEvents:(UIControlEventTouchUpInside)]; [button addTarget:self action:@selector(onTouchDown:) forControlEvents:(UIControlEventTouchDown)]; [button addTarget:self action:@selector(onTouchUpOutside:) forControlEvents:(UIControlEventTouchUpOutside)]; 

Пожалуйста, извините меня, если это не поможет или что вы ищете.

  • Можно сгибать UISlider пополам, чтобы сделать угол 90 °?
  • Как создать n число UIButton программно в ячейке UITableView?
  • Как сохранить и загрузить альфа-значения UIButton в приложении?
  • UIButton удаляет все целевые действия
  • Совместите изображение кнопки с правым краем UIButton
  • Цвет фона UIButton для выделенного / выбранного состояния
  • Как удалить изображение UIButton для определенных состояний?
  • Символ обратной связи iOS 7?
  • Маленькие красные круглые кнопки удаления
  • что лучший способ быстро воспроизводить звук при быстрой нажатии кнопки xcode?
  • Запуск метода UIButton, когда пользователь перетаскивает палец в область кнопки?
  • Interesting Posts

    Обработка кредитных карт и IOS

    UITableViewCell исчезает при быстрой прокрутке

    В чем разница между этими двумя версиями UIActivityType для Facebook?

    Значок приложения не отображается в пользовательском канале через

    iOs 8, начать воспроизведение звука в фоновом режиме, приложение для будильника

    Создайте круг в xib для построителя интерфейса

    Нежелательное дополнение в нижней части страницы, когда вход сосредоточен на мобильном сафари

    Нажмите жест в часть UITextView

    Стандартный UITableViewCell с динамической высотой

    Переименование значения plist программно?

    Автоматическое обнаружение вращения и поворот видео соответственно с помощью mencoder, handbrake cli или ffmpeg

    Сохранить UserID из Facebook SDK

    Получение предупреждения Firebase MobileAssetError в XCode 8

    Проблемы с StoryBoard ViewControllers в приложении с вкладками IOS

    Использование метода object_invoke Objective-C для вызова метода void в ARC

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.