gpt4 book ai didi

ios - 在 iOS 中创建不适合整个屏幕的 Google map

转载 作者:可可西里 更新时间:2023-11-01 00:39:33 26 4
gpt4 key购买 nike

我正在使用 Google Maps SDK 在我的 UIViewController 中生成 map ,但它会在整个屏幕上生成 map 。我只需要它在半个屏幕上创建 map 。我如何做到这一点?

class MapViewController: UIViewController,CLLocationManagerDelegate{
var locationManager = CLLocationManager()
var mapView = GMSMapView()

override func viewDidLoad() {
super.viewDidLoad()

// User Location
locationManager.delegate = self
//locationManager.requestWhenInUseAuthorization()
locationManager.requestAlwaysAuthorization()
view.backgroundColor = UIColor.gray

locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.startUpdatingLocation()
}

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let userLocation = locations.last
let center = CLLocationCoordinate2D(latitude: userLocation!.coordinate.latitude, longitude: userLocation!.coordinate.longitude)

let camera = GMSCameraPosition.camera(withLatitude: userLocation!.coordinate.latitude,
longitude: userLocation!.coordinate.longitude, zoom: 9.1)

mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
mapView.isMyLocationEnabled = true
self.view = mapView

locationManager.stopUpdatingLocation()
}
}

最佳答案

不要在 loadView 方法之外设置 self.view

此处正确的解决方案是在 viewDidLoad 中创建一次 map View 。将其添加为 self.view 的 subview ,而不是将其分配给 self.view。在 viewWillAppear 中设置一次它的框架。根据需要将框架设置为屏幕的一半。

然后,如果需要,在您的 didUpdateLocations 委托(delegate)方法中更新 map View 的位置。

关于ios - 在 iOS 中创建不适合整个屏幕的 Google map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47256304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com