【问题标题】:IOS - Optimizing google maps markersIOS - 优化谷歌地图标记
【发布时间】:2018-09-12 19:14:27
【问题描述】:

我正在使用 iOS 中的谷歌地图,其中有很多标记(大约 10 到 20)。我尝试优化我的代码。

为了创建标记,我们调用createMarker() 方法。

之前的代码:

func createMarker(){
    //Creating UIImageView() object for each marker
    let backgroundImg = UIImageView()
    backgroundImg.image = UIImage(named: "JobMarkerInvitedBg")
}

优化代码:

let uiImageView = UIImageView()
func createMarker(){
    //Reusing UIImageView() object
    let backgroundImg = uiImageView
    backgroundImg.image = UIImage(named: "JobMarkerInvitedBg")
}

在这里,我只创建了一次 imageview 对象,并重复用于所有标记,而不是一次又一次地创建它。这会对内存或 CPU 消耗产生显着影响吗?

【问题讨论】:

标签: ios swift google-maps google-maps-markers


【解决方案1】:

重用UIImage 的相同实例,并可能将它们作为全局属性存储在某处,如下所示。您不应重复使用相同的 UIImageView 实例。预加载图像并使用UIImage 的相同实例将为您带来最大的性能优势。 enum 用于 ImageStore,因为无法实例化该枚举。

enum ImageStore {
    static let jobMarker = UIImage(named: "JobMarkerInvitedBg")
}

class MarkCreator {

    func createMarkerView() -> UIImageView {
        let imageView = UIImageView()
        imageView.image = ImageStore.jobMarker
        return imageView
    }
}

【讨论】:

    【解决方案2】:

    如果您要使用相同的图像创建多个标记,请使用相同的 每个标记的 UIImage 实例。这有助于改善 显示许多标记时应用程序的性能。

    https://developers.google.com/maps/documentation/ios-sdk/marker

    您想使用UIImage 的相同实例。是的,调用同一个实例是 Google 希望您放置多个标记的方式。

    【讨论】:

      猜你喜欢
      • 2016-08-09
      • 2016-06-21
      • 1970-01-01
      • 2020-08-13
      • 1970-01-01
      • 2013-04-10
      • 2014-07-27
      相关资源
      最近更新 更多