Swiftui: вложенные виды прокрутки на противоположной осиIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Swiftui: вложенные виды прокрутки на противоположной оси

Сообщение Anonymous »

Я пытаюсь создать интерфейс с вертикальным видом прокрутки на верхнем уровне, а затем горизонтальный вид прокрутки (с использованием новой лицевой прокрутки от iOS 17), чтобы отобразить ряд дочерних видов, которые пользователь может прокручивать в сторону. До сих пор он ведет себя точно так, как я хочу, за исключением того, что высота первого из видов в горизонтальном виде, кажется, устанавливает высоту для каждого из других видов, даже если они имеют более высокий контент. Честно говоря, я не уверен, какое поведение я представляю это, но мне было интересно, решил ли кто -нибудь аналогичную проблему или разработал аналогичный макет по -другому. < /P>
Вот Минимальный воспроизводимый пример: < /p>

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

import SwiftUI

struct ContentView: View {
@State private var selectedTab: String? = "Tab 1"

var body: some View {
ScrollView(.vertical) {
LazyVStack {
Image(systemName: "photo.fill")
.resizable()
.aspectRatio(contentMode: .fill)

ScrollView(.horizontal) {
LazyHStack(spacing: 0) {
SampleView(.purple, 5)
.id("Tab 1")
.containerRelativeFrame(.horizontal)

SampleView(.red, 12)
.id("Tab 2")
.containerRelativeFrame(.horizontal)

SampleView(.blue, 20)
.id("Tab 3")
.containerRelativeFrame(.horizontal)
}
.scrollTargetLayout()
}
.scrollPosition(id: $selectedTab)
.scrollTargetBehavior(.paging)
}
}
}

@ViewBuilder
func SampleView(_ color: Color, _ size: Int) -> some View {
LazyVGrid(columns: Array(repeating: GridItem(), count: 2), content: {
ForEach(1...size, id: \.self) { _ in
RoundedRectangle(cornerRadius: 15)
.fill(color.gradient)
.frame(height: 150)
}
})
}
}

Вы можете увидеть из примера, высота горизонтального прокрутки заблокирована в разгар первого представления ребенка.

Подробнее здесь: https://stackoverflow.com/questions/782 ... osite-axis
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Есть ли способ поговорить между отправителем и получателем с противоположной стороной?
    Anonymous » » в форуме Php
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Прокрутка прокрутки на мобильные и планшетные виды
    Anonymous » » в форуме CSS
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Swiftui hstack Внутренние виды заполняют всю ширину одинаково и имеют одинаковую высоту, независимо от содержания
    Anonymous » » в форуме IOS
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Значки LineMark Swiftui обрезаны по оси Y с данными даты на диаграмме SwiftUI
    Anonymous » » в форуме IOS
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Значки LineMark Swiftui обрезаны по оси Y с данными даты на диаграмме SwiftUI
    Anonymous » » в форуме IOS
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

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