Жест касания на UILabel рядом с UIPageControl не работает - PullRequest
0 голосов
/ 08 мая 2018

У меня есть UILabel с обеих сторон от UIPageControl, как показано ниже:

Screen shot

Я обнаружил, что постукивание по сторонам UIPageControl точка будет прогрессировать, то есть не по моим стрелкам и не запускать мой метод. Но больше ничего не изменится, поэтому я установил isUserInteractionEnabled на false на UIPageControl.

Я подключил (через UITapGestureRecognizer) еще один UILabel выше, и он запускает метод штрафа. Однако UILabel s, кроме UIPageControl, не будут работать. ПРИМЕЧАНИЕ. У меня isUserInteractionEnabled установлено значение true для этого элемента. (Я даже временно изменил элемент на UIButton, и он тоже не будет работать - поэтому я вернулся к своему UILabel.)

Итак, есть ли способ добавить UILabel к стороне UIPageControl, которая срабатывает? С другой стороны, могут ли невидимые объекты (при нажатии слева или справа от UIPageControl - как в моем втором предложении) быть связаны с пользовательским методом?

UPDATE:

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

Кто-нибудь может сказать, почему?

1 Ответ

0 голосов
/ 16 мая 2018

Я решил проблему!

Я объявлял большинство переменных, а также UILabel в блоках замыканий, в верхней части класса, как показано ниже:

let myLabel: UILabel = {
{
  let view = UILabel()
  view.translatesAutoresizingMaskIntoConstraints = false
  view.isUserInteractionEnabled = true
  view.textColor = UIColor.blue
  return view
}

В этом закрытии у меня было view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(doMyLabelMethod(_:)))) и view.isUserInteractionEnabled = true, когда я вытащил их из крышки и поместил их прямо над addSubview(myLabel) выстрелил нормально.

Так что переменные-замыкания хороши, чтобы содержать много повязок, но не распознавателей жестов!

...