Swift: Как я могу остановить отмену жеста панорамирования при срабатывании таймера? - PullRequest
0 голосов
/ 05 июля 2018

Этот вопрос является кратким, и я не думаю, что он требует показа кода, но я хотел бы узнать, почему мое приложение делает это.

В моем ViewController у меня есть обратный отсчет Timer, который запускается каждую секунду и обновляет метку в представлении с помощью seconds -= 1 (например). Все работает отлично, как и должно ... ничего страшного.

Но у меня также есть кнопка UIB в том же виде, которую я могу перетаскивать. Проблема возникает каждый раз, когда мой Timer() срабатывает (каждую секунду) ... Мой PanGesture (перетаскивание кнопки UIB) отменяется, а кнопка UIB сбрасывается.

Есть ли какое-то свойство, которое мне нужно установить на UIButton или Timer, чтобы этого не происходило?

Большое спасибо за ваш совет!

1 Ответ

0 голосов
/ 07 июля 2018

Несмотря на то, что я не смог выяснить причины этого, вот что я выучил:

  • Если вы находитесь в середине UIPanGesture (перетаскивая UIView) и пытаетесь обновить текст на метке (т. Е. Обновить UI), ваша UIPanGesture будет отменена и будет вызван .ended. Это происходило со мной каждую секунду, когда мой таймер обновлял текст на этикетке.
  • В моем приложении метка, показывающая значение обратного отсчета, изначально скрыта (alpha = 0) в моем представлении, даже когда я выполняю обновление текста на нем, и моя UIB-кнопка для перетаскивания видна только тогда, когда моя метка обратного отсчета не отображается. т.
  • Так что мой обходной путь - обновлять текст на этикетке, только когда он действительно виден. Таким образом, моя UIPanGesture не затрагивается, пока я могу перетаскивать ее, но когда label становится видимым, а моя UIButton - нет, тогда я могу обновить текст на label по своему желанию, не беспокоясь о перетаскивании UIButton. вокруг.

Я знаю, что это очень нестандартное исправление, которое работает для меня, но если кто-то знает, что является причиной проблемы, пожалуйста, поделитесь:)

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