2017-07-22 2 views
0

J'ai une vue contenant un mapView (google maps) et d'autres contrôleurs. L'un est le searchBar. Le problème est que si je mets la barre de recherche sur la carte (en utilisant addSubView), quand j'essaie de cliquer dans la barre de recherche, rien ne m'apparaît ... Je suis nouveau sur xcode et swift et je n'arrive pas à savoir qui est le problème.xcode searchBar sur google map ne fonctionne pas

This is the hierarchy of the controllers

Puis, je l'ai fait viewDidLoad "mapView.addSubView (SearchBar), ..."

As result I can see the searchBar but if I click inside, it doesn't work (is not responding and I can't write anything to search

Qu'est-ce que je fais mal?

EDIT:

@IBOutlet weak var searchBar: UISearchBar! 
@IBOutlet weak var mapView: GMSMapView! 
@IBOutlet weak var advSearchButton: UIButton! 

@IBOutlet weak var logoIcon: UIImageView! 
@IBOutlet weak var trafficButton: UIButton! 
@IBOutlet weak var satelliteButton: UIButton! 
@IBOutlet weak var zoomInButton: UIButton! 
@IBOutlet weak var zoomOutButton: UIButton! 

voici ce que je fais dans viewDidLoad:

mapView.addSubview(zoomInButton) 
mapView.addSubview(zoomOutButton) 
mapView.addSubview(trafficButton) 
mapView.addSubview(satelliteButton) 
mapView.addSubview(searchBar) 
mapView.addSubview(advSearchButton) 
mapView.addSubview(logoIcon) 
mapView.moveCamera(GMSCameraUpdate.setCamera(camera)) 

Comme je l'ai déjà dit, est bien le searchbar visible, mais je ne peux pas écrire quoi que ce soit à l'intérieur .. Pourquoi mettez-vous la barre de recherche à l'intérieur de la vue de la carte?

+0

Les images ne captent pas l'attention, s'il vous plaît le code que vous avez essayé ici. –

Répondre

0

Pourquoi? Mine dans le même niveau que la carte. Les autres éléments aussi. Il est possible d'utiliser des contraintes pour localiser les vues comme vous avec sans de telles dépendances parent-enfant.

+0

Xcode les met automatiquement là quand je les déplace dans le storyboard ... – Davide

+0

De toute façon les boutons fonctionnent parfaitement ... le seul problème est la barre de recherche et je n'arrive pas à comprendre le problème. J'ai fait de même avec les deux boutons et la barre de recherche – Davide

+0

alors, essayez 'mapView.superview.addSubview (searchBar)' – Vyacheslav

0

La barre de recherche ne fonctionne pas car elle ne peut pas détecter les contacts tactiles. Les outils de reconnaissance de GMSMapView ne permettent pas à la barre de recherche de devenir le premier répondeur.

Donc, une solution consiste à supprimer les gesturesRecognisers de gmsmapView, puis la barre de recherche commence à détecter les touches.

ajouter cette ligne mapView.gestureRecognizers?.removeAll() et la barre de recherche va détecter les robinets au-dessus.