我正在构建一个应用程序,它将允许用户从各种图像中进行选择以用作图标。我正在寻找有关解决此问题的最佳方法的建议。无论我如何用词组搜索,我都只会获得有关为应用商店设置图标的信息。
我目前正在通过将一堆512 x 512 PNG图片存储在一个捆绑包中来进行处理。当我打开将显示图像列表的视图时,我将遍历分发包并使用图像构建UICollectionView
。我正在使用以下代码:
我使用以下方法将所有图像加载到viewDidLoad中的数组中:
icons = try! fileManager.contentsOfDirectory(at: assetURL, includingPropertiesForKeys: [URLResourceKey.nameKey, URLResourceKey.isDirectoryKey], options: .skipsHiddenFiles)
然后使用以下代码将图像加载到集合视图的单元格中:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "iconCell", for: indexPath)
let iconItem = icons[indexPath.row]
// Configure the cell
var imageView: UIImageView
let image = UIImage(named: "Images.bundle/\(iconItem.lastPathComponent)")?.resizeImage(newWidth: CGFloat(32)).withRenderingMode(.alwaysTemplate)
iconNames.append(iconItem.lastPathComponent)
imageView = UIImageView(image: image)
imageView.tintColor = .black
imageView.contentMode = .scaleToFill
cell.contentView.addSubview(imageView)
return cell
}
我想知道是否有更好的方法。它有效,但是我只是在猜测。最初,我尝试将所有图像放入Assets.xcassets中的文件夹中,但无法找到一种方法来遍历所有这些图像。
有没有更好的方法应该这样做?