你好,我试图将地图放入子视图中,但是当我将谷歌地图放入子视图中时,它无法工作,标记和 GPS 坐标也无法工作
-With Sub View
![With Sub View](https://i.stack.imgur.com/0RBkv.png)
-Without Sub View
![Without Sub View](https://i.stack.imgur.com/Taudp.png)
-SWIFT代码
import UIKit
import GoogleMaps
class HomeViewController: UIViewController, CLLocationManagerDelegate {
@IBOutlet weak var mapView: GMSMapView!
let locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
locationManager.delegate = self
locationManager.requestAlwaysAuthorization()
let camera = GMSCameraPosition.cameraWithLatitude(15.4989, longitude: 73.8278, zoom: 6)
let mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)
mapView.myLocationEnabled = true
// self.view = mapView
self.view.addSubview(mapView)
let marker = GMSMarker()
marker.position = CLLocationCoordinate2DMake(15.4989, 73.8278)
marker.title = "Panjim"
marker.snippet = "Near Don Bosco,Alphran Plaza"
marker.map?.addSubview(mapView)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
提前致谢
我找到了解决方案。问题是:我正在创建一个新地图,然后向该新地图添加一个标记。然后有了新地图我什么也没做。
所以这是我的解决方案:
@IBOutlet weak var subviewMap: GMSMapView!
func loadMap() {
let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 10.0)
subviewMap.camera = camera
let marker = GMSMarker()
marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
marker.title = "Sydney"
marker.snippet = "Australia"
marker.map = subviewMap
}
它有效。
NOTE :不要忘记在 IB 中将您的子视图提及为 GMSMapView 类
感谢@O-mkar 和@mixth 的努力。
快乐编码:]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)