Странное поведение с ScrollView в SwiftUIIOS

Программируем под IOS
Ответить
Anonymous
 Странное поведение с ScrollView в SwiftUI

Сообщение Anonymous »

В настоящее время я совершенствую свои знания SwiftUI и создаю этот экран задач. Однако в ScrollView есть странный раздел, который я не могу объяснить, как удалить (серая область над панелью вкладок на первом снимке экрана). Кажется, он исчезает при полной прокрутке до нижней части приложения.
Примечание. У меня есть специальная панель вкладок, и в моем ContentView все представления находятся в ZStack.

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

struct DailyTaskView: View {
var tasks: [Task]

var body: some View {
ZStack {
Color.gBlack.ignoresSafeArea(.all)

ScrollView(.vertical, showsIndicators: false) {
VStack {
ForEach(tasks) { task in
TaskItemView(task: task)
.padding(.vertical, 10)
}
}
}
}
}
}

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

struct TaskItemView: View {
var task: Task

var body: some View {
HStack(alignment: .center, spacing: 40) {
Circle()
.frame(width: 10, height: 10)
.foregroundColor(.white)
.shadow(color: .white.opacity(0.1), radius: 3)

VStack(alignment: .leading, spacing: 8) {
HStack(spacing: 8) {
Text(task.title)
.foregroundStyle(Color.white)
.font(.title)

Spacer()

Label("11:22 PM", systemImage: "clock")
.foregroundStyle(Color.white)
}

Text(task.description)
.foregroundStyle(Color.white)
.font(.callout)
}
//            .frame(maxWidth: .infinity)
.padding(15)
.background(task.tint, in: .rect(topLeadingRadius: 15, bottomLeadingRadius: 15))
//            .clipShape(.rect(cornerRadius: 20))
.strikethrough(task.isCompleted, pattern: .solid, color: .white)
}
.padding(.leading)
}
}

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

struct ContentView: View {
@State private var tabSelection: Int = 0
@State private var tasks: [Task] = sampleTask.sorted(by: {$1.date > $0.date})

var body: some View {

ZStack {
Color.gBlack.ignoresSafeArea(.all)

VStack() {
DateHeaderView()
.frame(maxWidth: .infinity)
.background(Color(Color.gBlack))

TabView(selection: $tabSelection) {
DailyTaskView(tasks: tasks)
.tag(0)
Text("Tab 2")
.foregroundStyle(Color.gBlack)
.font(.largeTitle)
.fontWeight(.black)
.tag(1)

}

Spacer()

TabBarView(tabSelection: $tabSelection)
}
.ignoresSafeArea(edges: .bottom)
}
}
}
Изображение
Изображение

Попытка преобразования в список, чтобы проверить, зависит ли это от ScrollView
Поигрался с .frame(), но безуспешно.
Проверил, что нет никаких дополнительных отступов, которые могли бы помешать.

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

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

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

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

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

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