我正在 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 消耗产生任何显着影响吗?
最佳答案
重复使用 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
}
}
关于IOS - 优化谷歌地图标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49630443/