TapGesturecognizer не работает в фоновом режиме в iphone X 12.1

#swift #uitapgesturerecognizer

#swift #uitapgesturerecognizer

Вопрос:

У меня есть простой код для добавления TapGestureRecognizer в dismis ViewController при нажатии на экран, но он не работает только в iPhone X 12.1.

 addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(closeSharing(_:))))
  

Примечание: волшебным образом, когда я добавляю tap gesturecognizer в новое представление, это ограничение, равное view, также не работает, но если я ограничиваю новое представление, не равное view, это работает. Кто-нибудь знает, почему?.

Комментарии:

1. Куда вы добавляете жест касания?

2. В viewDidLoad я пытаюсь добавить его в interface Builder, но он также не работает

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

Ответ №1:

Возможно, здесь потребуется проверить пару вещей:

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

Второй шаг Убедитесь, что ваше представление, в котором будет использоваться жест, должно обладать этим свойством view.isUserInteractionEnabled = true , иначе жест не будет работать.

Третий шаг Убедитесь, что ваше представление отображается во время тестирования, у вас может возникнуть проблема с ограничениями, поэтому представление выходит за пределы экрана, поэтому попробуйте присвоить представлению значение backgroundColor = .red , чтобы узнать, существует оно или нет, или вы можете использовать View Debugger из xCode.

Пример рабочего жеста:

     let viewToDismiss = UIView(frame:UIScreen.main.bounds)
    viewToDismiss.isUserInteractionEnabled = true
    let tap = UITapGestureRecognizer(target: self, action: #selector(closeSharing(_:)))
    tap.numberOfTapsRequired = 1
    viewToDismiss.addGestureRecognizer(tap)
  

Комментарии:

1. Спасибо за ваш ответ, но я проверил все это, и он по-прежнему не работает только в симуляторе iPhoneX 12.1.

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