You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS Swift开发中如何从项目assets资源库选取图片?

实现思路

UIImagePickerController 本身是系统为访问相册、相机等系统级资源设计的组件,完全不支持读取项目内置的 Assets.xcassets 资源,你需要自定义图片选择器来实现需求,具体步骤如下:

  • 第一步:整理待选资源列表
    先把你要开放给用户选择的asset图片名称整理为数组,避免把项目里不需要对外的图标、占位图等资源暴露出来:
    // 手动维护可选择的asset图片名,避免冗余资源出现在选择器里
    let selectableAssetNames = ["scene_1", "scene_2", "default_avatar", "cover_bg"]
    
  • 第二步:自定义选择器页面
    新建一个控制器,用 UICollectionView 作为展示容器,每个cell对应加载一张asset图片,加载逻辑如下:
    // 从asset加载对应图片
    cell.imageView.image = UIImage(named: selectableAssetNames[indexPath.item])
    
  • 第三步:实现选中回调逻辑
    给collectionView添加点击事件,选中对应图片后,你可以通过代理、闭包等方式把选中的图片/图片名回传给调用页,之后dismiss自定义选择器即可。你也可以在自定义控制器顶部加导航栏,放置取消、确定按钮,交互逻辑可以完全对齐系统的UIImagePickerController,调用方式也类似:
    let customPicker = CustomAssetPickerViewController()
    customPicker.onImageSelected = { selectedImage in
        // 处理选中的图片
    }
    present(customPicker, animated: true)
    
可选优化方案
  • 如果可选图片数量较多,可以提前做UIImage缓存,避免滑动卡顿
  • 可根据业务需求自由扩展多选、图片预览、裁剪编辑等能力,灵活度远高于系统原生picker

内容的提问来源于stack exchange,提问作者Reyjohn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:27:04