图像选择器显示多个图像,如拼贴没有内存问题

时间:2017-08-23 14:22:03

标签: ios swift image memory-management uiimagepickercontroller

我正在使用此ImagePicker从库或相机中选择多个图像。一旦用户完成选择图像,我将这些图像存储到一个数组中。我希望根据所选图像的数量将图像显示到帧。例如,如果选择的图像超过5个,则所选图像的结果将类似于此。 enter image description here

Imagepicker对我而言是新的。我不知道如何实现这一目标。我已经阅读了很多帖子,但没有清楚地了解如何在我的案例中实施。

我正在Demo项目上测试它,

func doneButtonDidPress(_ imagePicker: ImagePickerController, images: [UIImage]) {

    imagePicker.dismiss(animated: true, completion: nil)
    imageArray = images
    createCollage()
}

func createCollage() {

}

如果我使用UIimageView显示/加载图像,则会显示大量内存使用情况。

任何人都可以帮助我解决这些问题吗?任何帮助将不胜感激!!

2 个答案:

答案 0 :(得分:0)

查看ImagePicker的文档和代码,建议使用

public var imageAssets: [UIImage] {
    return AssetManager.resolveAssets(imagePicker.stack.assets)
}

通过查找AssetManager.resolveAssets实现,我们将获得一些配置大小

open static func resolveAsset(_ asset: PHAsset, size: CGSize = CGSize(width: 720, height: 1280), completion: @escaping (_ image: UIImage?) -> Void) {

设置尺寸取决于 imageView尺寸

--- UPD

或使用属性

open var preferredImageSize: CGSize?

答案 1 :(得分:0)

在真实设备上测试相同的代码,它运行正常。就我而言,在模拟器上进行测试会导致大量内存使用问题。