我正在使用资产目录,并添加各种大小的应用程序图标到资产是可以的。
但是,当我尝试以编程方式获取UIImage时,它返回nil。
UIImage *appIcon = [UIImage imageNamed"AppIcon"];应用程序图标被命名为AppIcon (默认),实际的文件是app-icon-256.png等。
我还注意到,与普通图片不同的是,应用程序图标位于AppIcon.appiconset目录下的“应用程序图标”集中。普通图像位于目录someimage.imageset中。
发布于 2014-04-02 18:32:28
问题是,在编译之后,资产目录中的AppIcon没有放在目录中。它复制到你的应用程序包中,就像以前一样。
将图标复制到应用程序包时使用的名称转换为AppIcon<size>.png,其中大小为例如40x40或72x72
您可以通过指定所需应用程序图标的大小来获取您的应用程序图标:
UIImage *appIcon = [UIImage imageNamed:@"AppIcon40x40"];发布于 2021-01-24 01:43:19
现代>iOS10的答案是:
复制并粘贴此扩展。
extension Bundle {
public var icon: UIImage? {
if let icons = infoDictionary?["CFBundleIcons"] as? [String: Any],
let primary = icons["CFBundlePrimaryIcon"] as? [String: Any],
let files = primary["CFBundleIconFiles"] as? [String],
let icon = files.last
{
return UIImage(named: icon)
}
return nil
}
}那就叫这个吧:
Bundle.main.iconSwiftUI
Image(uiImage: Bundle.main.icon ?? UIImage())https://stackoverflow.com/questions/22808416
复制相似问题