tableView (_: didSelectRowAt :) не вызывается в GMSMapView - PullRequest
0 голосов
/ 29 мая 2018

Я работаю над приложением iOS/Swift 4.0, в котором я создал UITableView, скажем, tableView на GMSMapView, скажем, mapView .Первоначально tableView не был виден, а после установки tableView.layer.zPosition = 2 он был виден перед mapView .Но жесты tableView не принимаются, а принимаются mapView .

Например, когда я пытаюсь прокрутить tableView , фон mapView движется / прокручивается, но tableView - нет.Также tableView(_:didSelectRowAt:) не вызывается при выборе ячейки.Я дважды проверил, что datasource и delegate правильно назначены и не изменяются при перезагрузке.

Вещи, которые я пробовал:

  1. Я отключил все жесты на mapView , когда tableView активен (не скрыт в зависимости от состояния searchBar), используя self.mapView.settings.setAllGesturesEnabled(true)
  2. Я включилtableViews, isScrollEnabled, isUserInteractionEnabled, allowsSelection свойства true
  3. Я установил ячейки selectionStyle в .default, isUserInteractionEnabled в true

Все еще не могу исправитьвопрос, какой шаг мне не хватает?

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Проблема была в другой стороне, и я предлагаю всем посмотреть ниже шаги

  1. Убедитесь, что tableView находится перед mapView, если он был создан в xcode статически
  2. СделатьУбедитесь, что tableView выведен на передний план с помощью self.view.bringSubview(toFront: tableView), если он создан программно
  3. Убедитесь, что размер контейнера tableView полностью покрывает полный размер внутреннего tableView
  4. Включены tableViews, isScrollEnabled, isUserInteractionEnabled, allowsSelection свойства
0 голосов
/ 29 мая 2018

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

view.insertSubview(tableView, above: mapView);

Что касается проверки tableView(_:didSelectRowAt:), установлено ли свойство delegate для UITableView в коде или в xib / storyboard.

...