Eu me deparei com um problema que parece ser um bug. Mas talvez eu esteja omitindo algo em relação ao iOS 18.
Descrição: Após clicar no botão, renderizo uma visualização como uma imagem e a armazeno como Dados para mais tarde:
struct ContentView: View {
@State private var data:Data?
private var img:Image {
if let data {
return Image(uiImage: UIImage(data: data) ?? UIImage())
}else{
return Image(systemName: "xmark.circle.fill")
}
}
var body: some View {
VStack {
TestView()
Button("Test") {
let ren=ImageRenderer(content: TestView())
if let data=ren.uiImage?.pngData() {
self.data=data
}
}
img
.resizable()
}
}
}
struct TestView:View {
var body: some View {
VStack {
ZStack {
Rectangle()
.fill(Color.red)
Text("TEST")
}
ZStack {
Rectangle()
.fill(Color.test)
Text("TEST 2")
}
}
}
}
Color.test foi definido no catálogo Assets. Isso funcionou bem em versões anteriores ao iOS/iPadOS 18.
Então, antes de clicar no botão, você verá isto:
clicando no botão, a visualização mostraria isto:
com a atualização, parece que as cores do catálogo de ativos não estão disponíveis e o resultado fica assim:
O retângulo com TESTE 2 não tem cor.
Alguma ideia?