我有标准的 iOS 应用程序,资产中包含一个标准的应用程序图标。
我想在应用程序中显示应用程序图标(使用 SwiftUI)。请注意,我不是在问如何设置应用程序图标或动态更改图标。我只想在应用程序自己的设置视图中显示应用程序图标。
看起来 App Icon 资产应该与其他任何资产一样,我可以使用以下内容将其包含在内(请注意,默认图标命名中 App 和 Icon 之间没有空格),
Image("AppIcon")
Run Code Online (Sandbox Code Playgroud)
我也尝试过,
Image("icon_60pt@3x.png") // Pick out a specific icon by filename
Image("icon_60pt@3x") // Maybe it assumes it's a .png
Image("icon_60pt") // Maybe it auto picks most appropriate resolution, like UIKit
Run Code Online (Sandbox Code Playgroud)
...但这些都不起作用。
如何在应用程序中包含应用程序自己的图标,而不将其复制为单独的图像集(我已经尝试过,并且确实有效。)
谢谢。
Asp*_*eri 10
以下工作,如果应用图标的设置是否正确二手设备(即iPhone图标iPhone等)
注意:应用图标的大小必须完全匹配!
使用 Xcode 11.4 测试
Image(uiImage: UIImage(named: "AppIcon") ?? UIImage())
Run Code Online (Sandbox Code Playgroud)
小智 10
这有效:
extension Bundle {
var iconFileName: String? {
guard let icons = infoDictionary?["CFBundleIcons"] as? [String: Any],
let primaryIcon = icons["CFBundlePrimaryIcon"] as? [String: Any],
let iconFiles = primaryIcon["CFBundleIconFiles"] as? [String],
let iconFileName = iconFiles.last
else { return nil }
return iconFileName
}
}
struct AppIcon: View {
var body: some View {
Bundle.main.iconFileName
.flatMap { UIImage(named: $0) }
.map { Image(uiImage: $0) }
}
}
Run Code Online (Sandbox Code Playgroud)
然后您可以在任何视图中使用它,如下所示:
AppIcon()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2455 次 |
| 最近记录: |