Можно ли использовать динамическое изображение в метке?
Что-то вроде :
Label("SP98", uiImage: myFunctionToReturnImageFromText("test"))
используется в этом контексте:
Menu {
if fuelTypeisAvailable(fuelType: "Diesel") {
Button {
updateStuff()
Haptics.shared.play(.light)
preferredFuelType = "Diesel"
} label: {
Label("Diesel", systemImage: "fuelpump.circle")
}
}
Спасибо
Я хочу, чтобы изображение было динамичным. Поэтому у меня нет имени текстовой строки. Я хочу предоставить uiImage.
Простой ответ - да. Вы не опубликовали Минимально воспроизводимый пример (MRE), но Label
не принимает UIImage
.
Попробуй это
struct ImageLabel: View {
let title: String
let image: Image
public init(_ title: String, uiImage: UIImage) {
self.title = title
self.image = Image(uiImage: uiImage)
}
public init(_ title: String, image: Image) {
self.title = title
self.image = image
}
var body: some View {
Text(title)
image
}
}
Apple рекомендует никогда не использовать AnyView
. Кроме того, это возвращает два отдельных Views
одновременно.
@Yrb возвращает два отдельных представления, но если вы поместите его в hstack или vstack, он будет работать хорошо.
ОП хочет Label
Я думаю, что инициализатор, который вы хотите использовать, это:
Label {
Text("SP98")
} icon: {
Image(uiImage: myFunctionToReturnImageFromText("test"))
}
Я думаю, что это близко, но, по-видимому, это не очень хорошо работает в меню. Извините, не уточнил.
Что ж, вы получили ответ на заданный вопрос. Вы должны принять это и задать лучший вопрос.
Почему бы просто не использовать:
Label("title", image: "image")
?