我开始尝试SwiftUI,我很惊讶,它似乎不是简单的改变一个视图的背景颜色。你如何使用SwiftUI做到这一点?
当前回答
struct Soview: View {
var body: some View {
VStack{
Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/)
.frame(maxWidth:.infinity,maxHeight: .infinity)
}.background(Color.yellow).ignoresSafeArea(.all)
}
}
其他回答
这个解决方案有效吗?:
添加以下行到SceneDelegate: window.rootViewController?backgroundColor = .black
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
if let windowScene = scene as? UIWindowScene {
window.rootViewController?.view.backgroundColor = .black
}
(SwiftUI / Xcode 11)
1 .background(Color.black) //系统颜色
2 .background(Color("green")) //用于您在Assets.xcassets中创建的颜色
或者你可以用Command+Click在元素上改变它。
希望能有所帮助:)
我不知道为什么没有人这么说,但是background()修饰符旨在设置背景颜色,并且支持ignoresSafeArea():
var body: some View {
Text("Da ba dee")
.background(Color.blue.ignoresSafeArea())
}
NavigationView例子:
var body: some View {
var body: some View {
NavigationView {
ZStack {
// Background
Color.blue.edgesIgnoringSafeArea(.all)
content
}
//.navigationTitle(Constants.navigationTitle)
//.navigationBarItems(leading: cancelButton, trailing: doneButton)
//.navigationViewStyle(StackNavigationViewStyle())
}
}
}
var content: some View {
// your content here; List, VStack etc - whatever you want
VStack {
Text("Hello World")
}
}
背景颜色
(Xcode 14.2, iOS 16.3, SwiftUI 4.0)
1. 文本
要在文本视图中扩展BG颜色,请使用.frame()修饰符的maxWidth和maxHeight参数。
var body: some View { // PINK COLOR
Text("one")
.frame(maxWidth: .infinity, maxHeight: .infinity)
.foregroundColor(.white)
.font(.system(size: 100))
.background(.pink)
}
2. ZStack
要填充ZStack视图的背景,使用Color对象作为基础层。
var body: some View { // YELLOW COLOR
ZStack {
Color.yellow.ignoresSafeArea()
Text("two").font(.system(size: 100))
}
}
3.VStack | HStack
如果你想给VStack或HStack分配一个新的BG颜色,请对堆栈本身应用修饰符。
var body: some View { // TEAL COLOR
VStack {
Text("three").font(.system(size: 100))
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(.teal)
}
4. 梯度
你可以使用矩形忽略屏幕的安全区域,并用渐变填充屏幕。
var body: some View { // PURPLISH GRADIENT
ZStack {
Rectangle()
.fill(Gradient(colors: [.indigo, .purple]))
.ignoresSafeArea()
Text("four").font(.system(size: 100))
.foregroundColor(.white)
}
}
5. 颜色方案|反色
颜色反转是一种简单而聪明的解决方案。
var body: some View { // INVERSION OF A COLOR
ZStack {
List {
ForEach(1..<6) { version in
HStack {
Image(systemName: "swift")
Text("Swift \(version).0")
}
}
}
Text("five").font(.system(size: 100))
}
.environment(\.colorScheme, .dark)
// .colorInvert()
}
6. 图像
无缩进图像可以包含纯色或渐变。
var body: some View { // GREEN JPEG as BG COLOR
ZStack {
Image("green")
.resizable()
.ignoresSafeArea()
.brightness(-0.2)
Text("six").font(.system(size: 100))
.foregroundColor(.white)
}
}
混合模式
在SwiftUI中,也有影响背景颜色和/或图像颜色的合成技术。点击这里阅读photoshop的混合模式。
推荐文章
- CSS:背景图像上的背景色
- 如何在Swift中删除视图的所有子视图?
- SwiftUI中的活动指标
- 如何使div背景颜色透明的CSS
- 如何用SwiftUI调整图像大小?
- 我能在视图中得到当前控制器的名称吗?
- 在SwiftUI中创建一个VStack填充屏幕宽度
- CSS:设置背景色为窗口宽度的50%
- 如何设置不透明度(Alpha)的视图在Android
- 我如何改变一个视图的背景颜色?
- 是否有一种方法以编程方式滚动滚动视图到特定的编辑文本?
- 如何使用@Binding变量实现自定义初始化
- 如何在PostgreSQL中查看视图的CREATE VIEW代码?
- 如何在Android中进行平滑的图像旋转?
- setBackground vs setBackgroundDrawable (Android)