【问题标题】:How to show Map View in a particular selected View using Map Box如何使用地图框在特定选定视图中显示地图视图
【发布时间】:2018-03-02 16:10:42
【问题描述】:

我有一个大小为(height = 213 , Width = 375)UIView,我只想在这个UIView 中显示地图。 我已经编写了使用 Mapbox 显示地图的代码,但它在全屏内显示地图。代码如下所示

    let mapView = MGLMapView(frame: view.bounds, styleURL: 
    MGLStyle.satelliteStreetsStyleURL())
    mapView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    mapView.setCenter(CLLocationCoordinate2D(latitude: 40.74699, longitude: -73.98742), zoomLevel: 9, animated: false)
    view.addSubview(mapView)

【问题讨论】:

    标签: ios swift swift3 uiview mapbox


    【解决方案1】:

    您的地图视图的框架似乎被设置为根视图控制器的大小。 frame 采用 CGRect。您可以通过调整 CGRect 中的值来更改地图视图的大小。

    let mapView = MGLMapView(frame: CGRect(x: 0, y: 0, width: 375, height: 213), styleURL: 
    MGLStyle.satelliteStreetsStyleURL())
    mapView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    mapView.setCenter(CLLocationCoordinate2D(latitude: 40.74699, longitude: -73.98742), zoomLevel: 9, animated: false)
    view.addSubview(mapView)
    

    【讨论】:

    • 我们必须只给出该视图的框架边界,而不是给出宽度和高度。
    【解决方案2】:

    我为那个 UIView 创建了一个名为 mapView 的 outlet,然后在代码中更改了以下内容:

    let mapView = MGLMapView(frame: mapView.bounds, styleURL: 
    MGLStyle.satelliteStreetsStyleURL())
    mapView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    mapView.setCenter(CLLocationCoordinate2D(latitude: 40.74699, longitude: -73.98742), zoomLevel: 9, animated: false)
    view.addSubview(mapView)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多