使用swift从目录加载多个图像

Posted

技术标签:

【中文标题】使用swift从目录加载多个图像【英文标题】:Load multiple image from directory using swift 【发布时间】:2016-07-14 06:26:02 【问题描述】:

我是 ios 新手swift 编程真的需要帮助!

我从 url 下载图像并保存到路径 /Users/mymac/Library/Developer/CoreSimulator/Devices/583C02D5-9A88-4756-9044-CD6DB4DCB57C/data/Containers/Data/Application/699F623B-000B -4365-B451-CA3104AD958B/文档/图像

现在我可以通过手动指定名称来加载图像ImageView

    var fileName = "Images/1A_Dorsal aspect.jpg"
    var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString
    var getImagePath = paths.stringByAppendingPathComponent(fileName)
    imageLoad.image = UIImage(contentsOfFile: getImagePath)

我需要的是使用数字加载 图像(即 25 个图像在我的文件夹图像中)使用 for 循环我想像 android(Java) 一样一张一张地加载图像

【问题讨论】:

这个问题和ios有关, 是的,在 iOS 中使用 swift 语言 【参考方案1】:

从文件夹或目录中加载多个图像。 - 斯威夫特 4

这是附加的图像,我们希望在下面给出的代码中实现。

这是从文档目录中的文件夹中查找多个图像的代码。我已经写了一种方法来做同样的事情。

在代码中,我们传递“文件夹名称”(即红色)并获取 该目录的内容。作为回报,我们得到了图像名称数组。

static func loadImagesFromAlbum(folderName:String) -> [String]

    let nsDocumentDirectory = FileManager.SearchPathDirectory.documentDirectory
    let nsUserDomainMask    = FileManager.SearchPathDomainMask.userDomainMask
    let paths               = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true)
    var theItems = [String]()
    if let dirPath          = paths.first
    
        let imageURL = URL(fileURLWithPath: dirPath).appendingPathComponent(folderName)

        do 
            theItems = try FileManager.default.contentsOfDirectory(atPath: imageURL.path)
            return theItems
         catch let error as NSError 
            print(error.localizedDescription)
            return theItems
        
    
    return theItems

这是给定代码的结果。

希望对你有帮助。

谢谢

【讨论】:

【参考方案2】:

在这里您可以获取存储在“Images”文件夹中的所有图像名称试试下面的代码:

 let fileManager = NSFileManager.defaultManager()
 let arrImages : NSMutableArray = []
            let tempFolderPath = AppHelper.fileInDocumentsDirectory("Images")
            do 
                let filePaths = try fileManager.contentsOfDirectoryAtPath(tempFolderPath)
                for filePath in filePaths 
                        try arrImages.addObject(tempFolderPath + "/" + filePath)

                
             catch 
                print("Could not get folder: \(error)")
            
print(arrImages)

【讨论】:

但是如何将图像加载到 imageView? 你在使用 tableView 吗? 不,我正在使用 Imageview 和 pageItemController 滚动。滚动页面时,我希望更改图像 看看这个例子:- github.com/UnicornTV/Swift-Example-UIPageViewController 正是您所指的,但我需要的是从目录文件夹(即设备内部)加载图像。例如 1.png、2.png、3.png...我怎么能做吗??

以上是关于使用swift从目录加载多个图像的主要内容,如果未能解决你的问题,请参考以下文章

如何从 macOS Swift 上的文档目录加载图像?

swift:从文档目录加载多个文件

从 Document 目录加载多个图像时 UICollectionView 卡住

如何使用 Swift 3 将图像从 Rest Api 加载到视图中加载方法

从 Swift 上的 URL 加载/下载图像

从 URL 加载图像并使用 Swift4 将它们存储在本地