2010-08-12 2 views
0

У меня проблемы с UIButton с iPhone SDK. Я определил, что когда у меня есть UIButton, удерживаемый при удалении родителя (и впоследствии удаленный uibutton), я получаю странное поведение. В моем случае приложение перестает получать какие-либо данные, как будто очищенная нажатая кнопка каким-то образом угнала систему ввода.Как правильно очистить UIButton

Кто-нибудь знает, есть ли способ очистки UIButton, который выпустит то, что я предполагаю, является основой мышления, что выпущенная кнопка все еще удерживается?

Обновление: добавление деталей к моей проблеме В принципе упрощенная ситуация заключается в том, что у меня есть корневой вид с двумя символами (актеры, а не буквы) и несколько кнопок, среди других видов. Пользователь может использовать кнопки, чтобы повлиять на направление движения, а когда персонажи находятся близко друг к другу, сцена движется вперед в другой режим, то есть кнопки сдвигаются, вид очищается, и я создаю новый.

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

ответ

0

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

[mMapView setCenterCoordinate: mCoordinates анимированный: YES];

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

0

Это может помочь, если вы объясните, какое поведение вы ожидаете. Если вы вызываете -removeFromSuperview, удерживая снимок, который хотите удалить (или его родительский элемент), я предлагаю вам вместо этого скрыть представление и установить некоторый флаг, который вы можете искать, когда пользователь заканчивает удерживание, которое будет в этом пункте вызова -removeFromSuperview.

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