我正在尝试使用ios中的google maps sdk设置地图搜索。到目前为止,我已经自动完成搜索正常工作,当我搜索时,结果显示在tableview中。我希望能够在表格视图中单击一个单元格并显示地图,然后在用户触摸回搜索框时再次显示该表格。我这样做的策略是将mapview和表视图分层放在相同的视图Controller中,并显示/隐藏或将任何视图推到顶部。但是,因为谷歌地图不是mapkit的一部分,我不确定我是否可以像这样操纵它。如果您知道一种简单的方法,请告诉我。将视图设置为tableview也会导致黑屏
mapView.hidden只显示黑屏
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.dataSource = self
self.tableView.delegate = self
self.resultSearchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
self.tableView.tableHeaderView = controller.searchBar
return controller
})()
view.bringSubviewToFront(self.tableView)
placesClient = GMSPlacesClient()
var camera = GMSCameraPosition.cameraWithLatitude(-33.86,
longitude: 151.20, zoom: 6)
var mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)
//mapView.hidden = true
mapView.myLocationEnabled = true
self.view = mapView
self.view = self.tableView
var marker = GMSMarker()
marker.position = CLLocationCoordinate2DMake(-33.86, 151.20)
marker.title = "Sydney"
marker.snippet = "Australia"
marker.map = mapView
}
我正在使用谷歌地图cocoapod
答案 0 :(得分:1)
这取决于它们在视图控制器的子视图列表中的顺序。如果mapView
和tableView
都是根view
的直接子视图,则只需拨打insertSubview:belowSubview:
[self.view insertSubview:mapView belowSubview:tableView];
反之亦然。
答案 1 :(得分:0)
我发现我必须添加自己的子视图,将该子视图的类更改为GMSMapview并将地图指定给该子视图。
var camera = GMSCameraPosition.cameraWithLatitude(-33.86,
longitude: 151.20, zoom: 6)
var mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)
mapView.myLocationEnabled = true
self.mapSubView.camera = camera
self.mapSubView = mapView