2012-05-10 5 views
4

У меня есть UIButton, подключенный к IBAction в Interface Builder.Запуск IBAction UIButton задерживается

Проблема:

  • Действие обжиг и де-изюминкой кнопки и принять немного случиться.

Факты:

  • Просмотр Структура:
    • Просмотр
      • 10 Кнопки (подключен через UIControlEventTouchUpInside к IBAction
      • View (подвид)
        • Жест р ecognizer
        • Текст поле
  • подвид имеет UITapGestureRecognizer, который delaysTouchesBegan и delaysTouchesEnded оба установлены на NO
  • Действие происходит в основном потоке.
  • Тестирование простой кнопки (без каких-либо изображений или названия, и только простого NSLog), результат тот же

Вопрос: Почему стреляет и де-изюминка задерживается?

+2

Вы можете разместить код? –

+0

Что событие вы используете огнь кнопки? –

+0

класса имеет много но я не думаю, что этот код имеет значение, как только простая кнопка с простым NSLog также имеет такую ​​же проблему ... –

ответ

7

В конце концов, я добавил где-то какое-то UIGestureRecognizer и забыл установить delaysTouchesBegan к NO = (

+1

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

+0

Спасибо за это. Я смог найти несколько распознавателей жестов, вызвавших тапочки. –

0

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

+0

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

+0

Хорошо, это очень странно, и я понятия не имею, почему и как. ** Но очистка всей папки сборки и проекта, разрешена. ** –

+0

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

5

Хорошо, я думаю, что из-за UITapGestureRecognizer .. попробуйте сделать следующее:

  1. подключить IBOutlet к кнопке.

2.assing UITapGestureRecognizer Делегат вашего ViewController.

3.Implement этот жест метод делегата в yourViewController

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer 
     shouldReceiveTouch:(UITouch *)touch { 
    return (! [yourButton pointInside:[touch locationInView:yourButton] withEvent:nil]); 
} 

Это позволит сделать кран, чтобы быть признан кнопке не в распознаватель.

+0

Отредактированный снова вопрос, @malek, проверьте структуру взгляда пожалуйста. Этот метод никогда не вызывается, когда кнопка нажата, только когда нажата другая подзона. –

+0

ОК, вам нужно показать нам свой код, чтобы мы могли вам помочь, –

+0

Хорошо, это очень странно, и я понятия не имею, почему и как. ** Но очистка всей папки сборки и проекта, разрешена. ** –

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