Показать цвет в полноэкранном режиме в SwiftUI

Я пытаюсь показать красный цвет на весь экран.

Если я использую edgesIgnoringSafeArea(.all), на экране автоматически включается прокрутка, чего я не хочу. Не могли бы вы посоветовать мне, как показать красный цвет на весь экран без прокрутки и без растяжения, потому что я меняю цвет на изображение.

Любая помощь будет принята с благодарностью.


Пример кода приведен ниже.

import SwiftUI

struct PageSetup: View {

  @State private var tabSelection = 0

  var body: some View {
    ZStack {
      TabView(selection: $tabSelection) {
        ForEach(0..<5) { index in
          ZStack {
            Color.red
            Text("\(index)")
          }
        }
      }
      .tabViewStyle(PageTabViewStyle())
      .onAppear {
        UIScrollView.appearance().bounces = false
      }
      .tabViewStyle(PageTabViewStyle())
    }
  }
}

Выход


person Sham Dhiman    schedule 01.03.2021    source источник
comment
Вы имеете в виду, что он не должен разбиваться на страницы после первого запуска? Или он не должен отскакивать?   -  person Tushar Sharma    schedule 01.03.2021
comment
мне нужно разбивать страницы, но я не хочу отказов   -  person Sham Dhiman    schedule 01.03.2021


Ответы (1)


Если я правильно понял, что вы хотели, вы используете ZStack и Color не в том месте. Ваш body должен быть похож на этот образец кода.


struct PageSetup: View {

  @State private var tabSelection = 0

  var body: some View {
    ZStack {
      getColorForPage().ignoresSafeArea()
      TabView (selection: $tabSelection) {
        ForEach(0..<5){ index in
          Text("\(index)")
        }
      }
      .tabViewStyle(PageTabViewStyle())
      .onAppear {
        UIScrollView.appearance().bounces = false
      }
    }
  }

  func getColorForPage() -> Color {
    if tabSelection == 0 {
      return Color.red
    } else if tabSelection == 1 {
      return Color.blue
    } else {
      return Color.orange
    }
  }
}
person egeeke    schedule 01.03.2021
comment
Спасибо за ответ, я хочу также изменить цвет, например, текст 1 красный, текст 2 синий и т. Д. Это возможно? - person Sham Dhiman; 01.03.2021
comment
Да, это возможно. См. Отредактированный ответ, и, если вас устраивает, примите мой ответ. - person egeeke; 01.03.2021
comment
Вы правы, я реализовал ваш код, но он не отображает изображение сверху и снизу должным образом. Не могли бы вы проверить мой снимок экрана i.stack.imgur.com/Br8E6.png - person Sham Dhiman; 01.03.2021
comment
Не забудьте добавить .ignoresSafeArea() после изображения. Если вы посмотрите мой код, то увидите, что после Color - person egeeke; 01.03.2021