Xcode添加了太多图片

rn0zuynd  于 2022-11-26  发布在  其他
关注(0)|答案(2)|浏览(131)

我需要在Xcode项目中使用1500张图片,每张图片都是64x64像素。我将在TableView中使用这些图片,但是当我将其直接放入Assets.xcassets目录时,Xcode崩溃了。使用这些图片的最佳方式是什么?

nx7onnlm

nx7onnlm1#

将您的图像添加到Xcode项目中-无论是在资产目录中,还是直接作为Images子目录-都会污染Interface Builder -填充每个可以选择图像的组合框,例如作为背景图像(通常,“污染”通常不包括“崩溃”,但我们都非常了解Xcode...)
如果我没理解错的话,你只想“按索引”使用这些图像,或者至少只想像在表格视图中那样编程使用。但是你不想在Xcode Interface Builder中手动分配它们。
我建议

  • 创建一个包含所有图像的容器文件(如.zip,未压缩)
  • 将.zip添加到项目中
  • 在程序启动时,将.zip文件解压缩到应用程序该高速缓存目录中(首先检查您是否已经在程序启动之前执行了此操作:-)
  • 通过该高速缓存目录的路径访问图像文件

如果图像文件太大(这样您的应用程序在设备上的占用空间就会太大),请不要解压缩它们,直接从.zip存档中获取它们
Swift中有几个(示例)项目可以使用.zip,比如https://github.com/marmelroy/Zip

t9eec4r0

t9eec4r02#

我想建议另一种替代zip方法的方法。在这种方法中,Xcode不知道任何关于文件的信息,所以它不会崩溃或冻结试图索引它们。而且这种方法没有zip方法的开销。

  • 将您的资产放置到项目表单查找器中。例如.“/assets”。
  • 在生成阶段创建新的运行脚本阶段
  • 粘贴此脚本
SOURCE="$SRCROOT/assets"
TARGET="${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app"
rsync -r --delete "$SOURCE" "$TARGET"
  • 使用带有UIImage(named: "assets/filename.png")的图像

相关问题