100 Days of SwiftUI

100 Days of SwiftUI - Day 20 猜旗项

2020-10-19  本文已影响0人  星星星宇

1.使用stacks排列View

VStack(spacing: 20) {
    Text("Hello World")
    Text("This is inside a stack")
}
Spacer()填满屏幕剩余空间
VStack {
    Text("First")
    Text("Second")
    Text("Third")
    Spacer()
}

2.Color and frame

给整个区域填满背景

ZStack {
    Text("Your content")
}
.background(Color.red)

这只会给textView填满背景。
你可以这样做

ZStack {
        Color.red
        Text("Your content")
    }

因为Color.red 本身就是一个视图,还有其它的颜色,如Color.primary,Color. secondary,
或者使用rgb来创建,

Color(red: 1, green: 0.8, blue: 0)

如果你想填满整个屏幕,

ZStack {
    Color.red.edgesIgnoringSafeArea(.all)
    Text("Your content")
}

3.渐变

SwiftUI提供了三种渐变

LinearGradient(gradient: Gradient(colors: [.red, .yellow, .green, .blue, .purple, .red]), startPoint: .top, endPoint: .bottom)
            
            RadialGradient(gradient: Gradient(colors: [.blue, .black]), center: .center, startRadius: 20, endRadius: 200)
            
            AngularGradient(gradient: Gradient(colors: [.red, .yellow, .green, .blue, .purple, .red]), center: .center)

4.Button and Image

一个简单的button

Button("Tap me!") {
    print("Button was tapped")
}

可自定义View的button

Button(action: {
                print("Button was tapped")
            }, label: {
                HStack(spacing: 10) {
                    Image(systemName: "pencil")
                        .renderingMode(.original)
                    Text("Edit")
                }
            })

使用renderingMode(.original)可以使用原始图像,而不使用着色的图像。

5.alert

    @State private var showingAlert = false
    
    var body: some View {
        Button("show alert") {
            showingAlert = true
        }
        .alert(isPresented: $showingAlert, content: {
            Alert(title: Text("hello"), message: Text("world"), dismissButton: Alert.Button.default(Text("OK")))
        })
    }

alert通过showingAlert 双向绑定。

alert写在什么位置并不重要。

上一篇下一篇

猜你喜欢

热点阅读