#ios #swiftui
Вопрос:
Я пытаюсь центрировать изображение и текст метки SwiftUI по вертикали. Я попытался переопределить направляющую выравнивания изображения, но это не сработало. Есть какие-нибудь идеи?
Label {
Text("Test fdasf n adfsa dsfsd f asdf n asd fasd fads sad fda")
} icon: {
Image(systemName: true ? "checkmark.circle.fill" : "circle")
.alignmentGuide(VerticalAlignment.top) {
$0[VerticalAlignment.center]
}
}
Ответ №1:
Мы можем сделать это, используя пользовательский стиль этикетки, например
struct DemoStyle: LabelStyle {
func makeBody(configuration: Configuration) -> some View {
HStack(alignment: .center) { // << here !!
configuration.icon
configuration.title
}
}
}
и используйте его
Label {
Text("Test fdasf n adfsa dsfsd f asdf n asd fasd fads sad fda")
} icon: {
Image(systemName: true ? "checkmark.circle.fill" : "circle")
}
.labelStyle(DemoStyle())
Протестировано с Xcode 13 / iOS 15
Комментарии:
1. Спасибо! Есть ли какой-нибудь способ решить эту проблему с помощью руководств по компоновке?