当前位置: 首页 > 知识库问答 >
问题:

如何在swiftUI中为viewController设置背景色?

林俊英
2023-03-14

我一直在尝试在 swiftUI 中为整个视图控制器设置背景颜色,但我无法做到。视图不采用属性 .background颜色

我已经尝试使用< code >。< code>sceneDelegate中的< code>viewController的backgroundColor属性,它不接受该属性,但接受< code>foregroundColor属性。

共有3个答案

窦哲彦
2023-03-14

您可以使用下面的代码来更改整个视图控制器颜色

ZStack {
        Color.red
        .edgesIgnoringSafeArea(.all)
    }

并使用此代码来更改安全区域背景颜色

ZStack {
        Color.red
    }
陈琪
2023-03-14

如果在俯视图上使用背景修饰符(.background(Color.red)),则只需用一个新视图将该视图包裹起来,背景色为红色围绕其填充或大小。因此,您应该使用矩形()视图和Z堆栈来设置整个视图的完整背景,如果需要,可以使用.edgesIgnoringSafeArea

    NavigationView {
        ZStack { 
            Rectangle().foregroundColor(.blue).edgesIgnoringSafeArea(.all)
            ScrollView {
                List()
                    ForEach(modelExampleList) { modelExample in
                        Row(model: modelExample)
                    }
                }.frame(height: 200)
            }.padding(.leading, 10)
        }.navigationBarTitle(Text("ModelExample List"), displayMode: .large)
    }
穆单鹗
2023-03-14

到目前为止,我发现最有效的方法是在 ContentView 正文的顶部创建一个 ZStack,并将第一层设置为“颜色”,从而忽略安全区域。Apple 将 Color 定义为“后期绑定令牌”,无论它是什么,但它的行为类似于任何其他视图。

struct ContentView: View {
  var body: some View {
    ZStack {
      Color.red
      .edgesIgnoringSafeArea(.all)

      /// Your Inner View content goes here.
      VStack {
        Text("Hello") 
      } // VStack

    } // ZStack
  } // body View
}  // ContentView

注意:要小心内部视图中的内容,因为它可以很容易地扩展以填充整个窗口,从而用白色等覆盖背景颜色。例如,流行的NavigationView倾向于扩展到整个窗口,对我来说,它倾向于忽略其记录的. background()设置。你也可以在这里执行相同的ZStack策略。

NavigationView {
  ZStack { 
    Color.red.edgesIgnoringSafeArea(.all) 
    VStack {
      Text("Hello")
    } // VStack
  } // ZStack
}  // NavigationView
 类似资料:
  • 问题内容: 我正在尝试设置的背景色。我正在尝试通过使用下面的代码(部分来自SwiftUI教程)添加一个。然而,这只是以往的白色,除非我替换用 我可以设置单个列表项的颜色,但我希望整个背景显示为蓝色 问题答案: 与相同。但是,由于还没有直接的api,您可以使用以下命令进行更改: 您应该将其放置在可以确保编译器在方法内部读取的位置。 请注意,其中一些将 在Xcode 11 beta 5以下无法正常工作

  • 我正在尝试设置的背景色。我正在尝试使用以下代码添加 (部分来自 SwiftUI 教程)。然而,它只会是白色的,除非我用替换 我可以设置单个列表项的颜色,但我希望整个背景显示蓝色

  • 嘿,伙计们,我实际上是java编程的新手。我可以把背景颜色的代码行放在哪里。因为当我在main方法中放一个颜色为黄色的jpanel时。jframe中背景颜色的设置有效,但jtag、jtext field和j按钮现在不见了...一切都只是黄色。 }

  • 本文向大家介绍如何在HTML中设置背景颜色?,包括了如何在HTML中设置背景颜色?的使用技巧和注意事项,需要的朋友参考一下 要在HTML中设置背景颜色,请使用style属性。style属性指定元素的内联样式。该属性与HTML <body>标记以及CSS属性background-color一起使用。HTML5不支持<body>标记的bgcolor属性,因此CSS样式用于添加背景色。HTML5中不推荐

  • 问题内容: 以下代码中的行无效。为什么?我该如何解决? 问题答案: 您需要调用小部件。默认情况下,a不会填充背景。 有关更多信息,请参见该属性的文档。 如果要使用任意背景色,则需要修改小部件的调色板:

  • 问题内容: 我正在使用BlueJ作为IDE使用Java开发一个简单的平台游戏。现在,我在游戏中使用多边形和简单形状绘制了玩家/敌人的精灵,平台和其他物品。最终,我希望将它们替换为实际图像。 现在,我想知道将图像(URL或本地来源)设置为游戏窗口/画布的“背景”的最简单解决方案是什么? 如果编程时间不是太长或太复杂,我将不胜感激,因为我的编程技能不是很好,我想使我的程序尽可能简单。请为示例代码提供注