2010-10-07 2 views
2

У меня есть UIButton в UIView, который находится в UIViewController, который я выделил и запустил из файла .xib.Событие UIButton 'Touch Up Inside' не работает. «Touch Down» отлично работает

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

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

Есть ли у кого-нибудь идеи, почему это может быть?

Rich

+0

UIViews userInteractionEnabled установлен в YES? –

+0

Можете ли вы рассказать о каком-то соответствующем коде для нас? –

+0

У меня также есть эта проблема. Мой UIButton находится в пользовательской ячейке таблицы - я думаю, что tableview делает что-то странное. – nevster

ответ

4

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

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

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

    NSLog(@"%s", __PRETTY_FUNCTION__);

  • Проверить в IB, что единственная функция, ваша кнопка подключается к ваш сенсорный -up-inside. (Позже вы можете подключить его к нескольким событиям, но для тестирования мы хотим как можно больше упростить.)

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

    - (IBAction) myButtonPressedAction: (id) sender;

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

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

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

+0

«Убедитесь, что родительский вид имеет« userInteractionEnabled »set« работал для меня! благодаря –

Смежные вопросы