美文网首页100 Days of SwiftUI
100 Days of SwiftUI - Day 20 猜旗项

100 Days of SwiftUI - Day 20 猜旗项

作者: 星星星宇 | 来源:发表于2020-10-19 14:52 被阅读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写在什么位置并不重要。

    相关文章

      网友评论

        本文标题:100 Days of SwiftUI - Day 20 猜旗项

        本文链接:https://www.haomeiwen.com/subject/hbttmktx.html