Событие UIButton 'Touch Up Inside' не работает.«Touch Down» работает отлично - PullRequest
2 голосов
/ 07 октября 2010

У меня есть UIButton в UIView, который находится в UIViewController, который я выделил и инициализировал из файла .xib.

При подключении IBAction до события 'Touch Down'UIButton это срабатывает правильно.Но если я подключу его к событию «Touch Up Inside», оно не ответит.

Другие события тоже не сработают.«Touch Drag Enter», «Touch Drag Exit», «Touch Up Outside» и т. Д. Только Touch Down.

Кто-нибудь знает, почему это может быть?

Rich

1 Ответ

4 голосов
/ 28 июня 2011

Во-первых, я абсолютно уверен, что UIB-кнопки, правильно подключенные к IB, отвечают ожидаемым событиям касания.(Можете ли вы представить, если бы они этого не сделали?)

Учитывая это, справедливо поспорить, что вы не подключили все, как ожидали.Вот несколько вещей, которые стоит попробовать:

  • Сначала сделайте распечатку выписки из журнала:

    NSLog(@"%s", __PRETTY_FUNCTION__);

  • Отметьте в IB, что ЕДИНСТВЕННАЯ функция, к которой подключена ваша кнопка, - это ваше действие по подкрашиванию.(Позже вы можете подключить его к нескольким событиям, но для тестирования мы хотим максимально упростить его.)

  • Убедитесь, что ваша кнопка имеет размер 50x50 или больше.(Маленькие кнопки трудно нажимать.)
  • Пока что сделайте вашу кнопку прямоугольной с закругленными углами.Если у вас была кнопка с изображением, и изображение было прозрачным, может быть трудно нажать.
  • Убедитесь, что у вас есть правильная подпись для вашего действия:

    - (IBAction) myButtonPressedAction: (id) sender;

  • Просто чтобы убедиться, что все чисто, удалите кнопку из своего .xib и заново добавьте ее.

  • Убедитесь, что в родительском представлении установлено userInteractionEnabled.
  • Убедитесь, что FileOwner xib является вашим типом контроллера представления.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...