【问题标题】:Resizing iOS Google map incurs significant performance hit when map view reaches the size of the Google logo当地图视图达到 Google 徽标的大小时,调整 iOS Google 地图的大小会导致性能显着下降
【发布时间】:2017-03-14 19:26:15
【问题描述】:

我发布此消息是因为它似乎是与地图团队沟通的推荐方式。

我们观察到在 iOS 上调整地图大小时性能受到显着影响(例如 60FPS 到 40FPS)。

当地图达到与“Google”徽标相同的高度时,性能受到影响,从这里观察到 FPS 显着下降。

值得注意的是,在 Android 上,当我们执行相同的步骤时,Google 徽标会按比例缩放到地图视图的大小。在 Android 上没有观察到性能损失。

在 iOS 上,徽标没有随着视图大小的变化而调整 - 我们认为这在某种程度上与错误有关。

使用仪器分析器,我们注意到当抖动发生时,mach_msg_trap 的使用似乎显着增加,该调用链中的可疑方法是 [IOSurface initWithProperties]create_iosurface_with_pixel_format()allocate_buffer()

在我们的特定情况下,由于与错误无关的原因:我们有一个滚动视图,当视图滚动并且地图被推离屏幕时,我们希望将地图缩小到当前在屏幕上可见的大小。

地图小组的人可以调查一下吗?

【问题讨论】:

    标签: google-maps google-maps-sdk-ios


    【解决方案1】:

    如果我理解正确,您所做的是更改地图的UIViewframe,对吧?

    有一种不同的方法可以做到这一点。设置GMSMapView 框架,使其覆盖整个超级视图并使用谷歌地图提供的属性padding 更改填充: Google Maps : Map padding

    例子:

    let mapInsets = UIEdgeInsets(top: 100.0, left: 0.0, bottom: 0.0, right: 300.0)
    mapView.padding = mapInsets
    

    【讨论】:

      猜你喜欢
      • 2013-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      相关资源
      最近更新 更多