图像不能在新的iOS 16小部件中渲染?

uujelgoq  于 2022-10-23  发布在  iOS
关注(0)|答案(4)|浏览(139)

我正在开发一个新的.attoryInline小部件,在iOS 16中引入。它非常简单,只显示静态文本和一张图像,所说的图像是一个自定义的SF符号,经过验证,也可以在其他地方使用它很好地工作(例如.attoryRecTangular小部件)。以下是我的代码:

case .accessoryInline:
            HStack {
                Image("mysymbol.car")
                  .resizable()
                  .widgetAccentable()
                Text("My Static Title")
            }

然而,这只在运行应用程序时呈现文本,并在图像应该出现的地方留下了一个奇怪的小空间。是我做错了什么,还是出了问题?

jdzmm42g

jdzmm42g1#

我也面临着这个问题。显然,内联小工具图标是有大小限制的。可调整大小不起作用,因此文件本身有大小限制。任何地方都没有关于这方面的文件,所以我还没有数字。
更新:使用145x145大小的PNG似乎可以做到这一点。

vcirk6k6

vcirk6k62#

您必须使用Label来呈现带有文本的图像。HStack在那里不起作用。

Label {
    Text("My Static Title")
        .foregroundColor(.white)
} icon: {
    Image("mysymbol.car")
        .resizable()
        .frame(width: 12, height: 21, alignment: .center)
        .foregroundColor(.white)
}
relj7zay

relj7zay3#

.png文件上绘制符号,将其包含在小部件的捆绑包中,并通过此.png文件加载图像。
我可以向您保证,加载.png文件对我来说是有效的。可能还有另一个问题,就像你在@swftyboi回答的评论中提到的那样,它对你不起作用。
.inlineAccessory对图像具有选择性。我发现它可以加载SFSymbol图像(通过Image(systemName: String))以及某些格式(但不是所有格式)的捆绑图像。然而,它忽略了用Path绘制的图像,所以它也忽略自定义符号也就不足为奇了。
它似乎也忽略了所有的格式化信息。它只使用找到的第一个图像和第一个文本,并按此顺序显示它们。

1cklez4t

1cklez4t4#

答:解决这个问题的方法是将锁屏小部件代码从自己的目标移动到与主屏幕小部件共享的目标,并使用WidgetBundle

相关问题