IOS - 优化 google 地图标记

IOS - Optimizing google maps markers

我正在 iOS 中制作 google 地图,其中有很多标记(大约 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 消耗产生重大影响吗?

If you are creating several markers with the same image, use the same instance of UIImage for each of the markers. This helps improve the performance of your application when displaying many markers.

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

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

重复使用 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
    }
}