Я создаю виджет в SwiftUI и нахожу то, что считаю очень глупой проблемой.
У меня есть Image
, который я хочу использовать в качестве фона. Я установил для него соотношение сторон .fill
, но похоже, что он этого не делает.
Вот код:
var body: some View {
ZStack {
Image(affirmation.customImageName ?? "c_0")
.edgesIgnoringSafeArea(.all)
.aspectRatio(contentMode: .fill)
.frame(width: 300, height: 300, alignment: .center)
.background(Color.green)
HStack {
VStack {
Text(affirmation.title)
.font(.title)
.multilineTextAlignment(.leading)
}
Spacer()
}
.padding(.leading, 5)
.padding(.top, 5)
}
}
Кроме того, если я удалю .frame(width: 300, height: 300, alignment: .center)
, изображение не будет использовать всю область.
ОБНОВЛЕНО:
Теперь размер изображения изменяется благодаря ответу @staticVoidMan, добавление resizable()
помогло. Проблема теперь в том, что Text
, кажется, также изменяет размер и заполняет больше, чем его пространство.
var body: some View {
ZStack {
Image(affirmation.customImageName ?? "c_0")
.resizable()
.aspectRatio(contentMode: .fill)
HStack {
Text(affirmation.title)
.font(.body)
.multilineTextAlignment(.leading)
.lineLimit(nil)
Spacer()
}
.padding(.leading, 5)
.padding(.top, 5)
}
Вот изображение:
заранее спасибо
Value of type 'some View' has no member 'resizable'
Я что-то упускаю? - person Joan Cardona   schedule 28.07.2020.resizable()
сразу послеImage
доedgesIgnoringSafeArea
- person staticVoidMan   schedule 28.07.2020Image
для вас вSwiftUI
- person staticVoidMan   schedule 28.07.2020resizable
- модификатор просмотра только дляImage
- person staticVoidMan   schedule 28.07.2020