Вертикальная прокрутка не работает с фоном изображения .scaledToFill в портретном режиме.IOS

Программируем под IOS
Ответить
Anonymous
 Вертикальная прокрутка не работает с фоном изображения .scaledToFill в портретном режиме.

Сообщение Anonymous »

У меня есть горизонтальная прокрутка, на которой отображаются карточки с вертикальной прокруткой для некоторого текста. Вертикальная прокрутка имеет фоновое изображение, масштабированное для заполнения. Модификатор .scaledToFill делает так, что вертикальная прокрутка больше не будет работать в портретном режиме. Он отлично работает в альбомной ориентации.
Вот пример:

Код: Выделить всё

struct ImagedScrollView: View {
@State private var currentIndex: Int? = 0

var body: some View {
GeometryReader { geoProxy in
let size = geoProxy.size

ScrollViewReader { scrollProxy in
ScrollView(.horizontal, showsIndicators: false) {
LazyHStack {
ForEach(0...35, id: \.self) { index in
let width = size.width-16
let height = size.height-16

ScrollView(.vertical, showsIndicators: false) {
VStack {
ForEach(1...100, id:\.self) { _ in
Text("Hello, World")
}
}
}
.frame(width: width, height: height)
.background(
Image(.pic1)
.resizable()
.scaledToFill()
.frame(width: width, height: height)
.clipShape(RoundedRectangle(cornerRadius: 25.0))
)
}
}
.scrollTargetLayout()
}
.scrollContentBackground(.hidden)
.scrollPosition(id: $currentIndex)
.scrollTargetBehavior(.viewAligned)
.padding(8)
}
}
}
}
Я осмотрелся и не нашел решения этой конкретной проблемы. Я знаю, что это проблема с расчетом размера контента, но поскольку я не до конца понимаю эту проблему, я просто случайно не заметил ее с рамкой вертикального прокрутки (maxHeight, оставляя высоту) или рамкой Text("Hello, World") (определенная высота). Все промахи, вероятно, по понятным причинам, но я не могу этого понять.
Я пробовал изображение как в ZStack, так и в модификаторе фона.

Подробнее здесь: https://stackoverflow.com/questions/798 ... in-portrai
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»