UIButton селектор стрельбы - PullRequest
0 голосов
/ 17 июня 2011

У меня UIB-кнопка, связанная в IB правильно (я верю). Кнопка срабатывает непоследовательно, каждый раз, когда я перезагружаю представление для отображения обновленной информации, кнопка иногда работает, а иногда нет. Она не выдает ошибок. Я не могу найти шаблон, когда он работает, а когда нет, один и тот же код запускается каждый раз, когда я открываю представление, и он все еще работает, когда хочет. Помимо связывания его в IB, я также пытался добавить цель в ViewDidLoad и удалить соединение IB, но оно по-прежнему имеет такую ​​же несогласованность,

[_buttonScreen addTarget:self action:@selector(buttonScreenClicked)  forControlEvents:UIControlEventTouchUpInside];   

Если я добавлю NSLog (@ "Clicked"); to buttonScreenClicked Я вижу, что метод не всегда вызывается, что бы заставить его делать это, я убедился, что я установил:

[_buttonScreen setAlpha:0.1];
[_buttonScreen setHidden:NO];
[_buttonScreen setUserInteractionEnabled:YES];

У меня нет кнопки, текста или цвета в кнопке, но иногда она работает. Я использую AFKPageFlipper в том же представлении, но у меня все еще была та же проблема, прежде чем я добавил AFKPageFlipper, поэтому я не думаю, что это так.

Если бы кто-нибудь мог указать мне в каком-либо направлении, чтобы начать устранять проблему, я был бы признателен.

Спасибо

Ответы [ 3 ]

1 голос
/ 01 октября 2012

У меня была такая же проблема, и я решил ее.5 секунд - ключ.

Где-то у вас есть распознаватель жестов, закрывающий то же пространство, что и ваша кнопка.Точнее, у вас есть распознаватель жестов, который ест ваши тапы, но не ваши длинные нажатия.Если вы просто нажмете кнопку, распознаватель жестов уйдет с вашим событием;Удерживайте палец достаточно долго, и распознаватель жестов больше не будет считать это касанием, и событие передается на вашу кнопку.

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

0 голосов
/ 20 октября 2011

Что попробовать:

Есть ли у вас какие-либо другие действия с кнопкой?Есть ли у вас какие-либо другие UIViews, которые могли бы принимать нажатия клавиш (выше или ниже или не показаны)? Также убедитесь, что у вас есть только один экземпляр UIViewController для этого экрана.Из-за этого могут возникнуть другие проблемы.Что произойдет, если вы не установите альфа-уровень?

Правильно ли вы отпускаете объект только в dealloc?

Надеюсь, это поможет

0 голосов
/ 17 июня 2011

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

Также убедитесь, что содержащий представление (вид с кнопкой в) имеет правильный размер, по умолчанию вы можете поместить вид за пределы другого вида, а для clipsToBounds установлено значение false, так что вы увидите его, но не увидите способен взаимодействовать с ним.

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