SwiftUI学习02

2021-11-26  本文已影响0人  冷武橘

一、第一个SwiftUI App程序

import SwiftUI
@main
struct LandmarksApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
ContentView.swift
import SwiftUI

struct ContentView: View {
    var body: some View {
        Text("Hello, World!”)
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

二、Text View

显示一行或者多行文字的只读View,也就是UIKit中的UILable

struct ContentView: View {
    var body: some View {
            Text("你好世界”)
            .font(Font.system(size: 30))
            .foregroundColor(Color.red)
            .padding(EdgeInsets.init(top: 10, leading: 10, bottom: 10, trailing: 10))
            .background(.green)
    }
}
struct ContentView: View {
    var body: some View {
            Text("你好世界啊啊啊”)
            .font(Font.system(size: 20))
            .foregroundColor(Color.red)
            .frame(width: 100, height: 60, alignment: .leading)
            .background(.green)
            .lineLimit(nil)
    }
}

三、 VStack 和HStack

当创建一个SwiftUI view时,只需要在 ContentView的 body属性里面对这个view描述内容、布局就好了,但是 body属性只能返回单独的一个view。为了可以在body属性里面描述多个View,我们可以用stacks,将多个View组合在一起。

1、VStack
截屏2021-11-26 下午2.33.06.png
2、HStack
截屏2021-11-26 下午2.39.57.png
3、Spacer

A spacer expands to make its containing view use all of the space of its parent view, instead of having its size defined only by its contents.
一个spacer可以扩充空间,让所有的view使用parent view的所用空间,parent view的大小不在由其内容决定。

截屏2021-11-26 下午3.14.40.png
从运行显示结果看,space在中间的时候,会使两边的view推到两侧;space 在左边的时候,会将view推到最右侧;space 在右边的时候,会将view推到最左侧;
通俗点理解:space会使stack充满全屏,space相当于一个虚拟控件一样,占据了剩余的所有空间。
截屏2021-11-26 下午4.23.20.png
总结:SwiftUI的布局不同于UIKit,frame只能提供建议的大小,而通过灵活使用HStack、VStack、Spacer就可以完成大多数布局了。回看一下SwiftUI的布局有点像html的布局一样,Stack就如DIV一样模幻
上一篇 下一篇

猜你喜欢

热点阅读