swiftUI 知识小结

SwiftUI  View


1. Text 

文字

2. Image

图片

3.Button(Tap)

按钮 手势

4.Spacer

占位的view

5.Divider

分割线,VStack 里面分割线是水平方向的线

HStack 里面分割线是竖直方向的线

6.Rectangle

矩形View

7.RoundedRectangle

圆角矩形View 圆角等于高度的一半时,矩形两边正好是两个半圆

----------------------------->1<-----------------------------


1.VStack

让View纵向排列

2.HStack

让View水平排列

3.ZStack

垂直于屏幕方向排列

4.Group

分组,显示多个自动预览页的时候,可以把自动预览页放进Group,

5.GeometryReader

一个View,会尽量的扩张自己,尽可能多占空间,可以放View,可以获取自己的宽高

6.ScrollView

可滑动的View

----------------------------->2<-----------------------------


1.List

可以展示多个不同的View,可以用for Each语句铺view

2.ForEach

for循环 遍历数组或者view数组,这些view可以放到List里面

3.NavigationView

导航栏可以进行跳转

4.NavigationLink

导航栏的跳转

5.EmptyView

空View 

6.Model presentation 

模态推出一个页面

----------------------------->3<-----------------------------


ViewModifier 控件修改器,这是个协议

1.frame

修改View宽高

2.padding

修改View上下左右的间距

3.offset

修改View水平方向或竖直方向偏移量

4.clipShape

把View裁成某个形状 (圆形)

5.clipped

把超出View得部分裁剪掉

6.scaleEffect

实现缩放效果

----------------------------->4<-----------------------------


1.foregroundColor

修改颜色

2.opacity

修改透明度

3.hidden

隐藏View

4.overlay

在View前面添加东西

5.background

在View后面添加东西

----------------------------->5<-----------------------------


1.ListRowInsets

修改一个View在List里面的上下左右间距

2.edgeslgnoringSafeArea

当一个View的一部分处在安全区域的时候,要在安全区域里显示内容可以用~~忽略安全区域

3.navigationBarTitle

设置导航栏的标题

4.navigationBarHidden

设置了标题之后,~~导航栏隐藏才会起作用,

5.navigationBarItems

可以在导航栏里 添加其他的View

6.navigationViewStyle

我们在适配ipad的时候用到,可以使ipad显示的效果和iphone一样

----------------------------->6<-----------------------------


SwiftUI Text

1.font

修改字体、大小

2.bold

字体加粗

3.lineLimit

限制行数

----------------------------->7<-----------------------------


SwiftUI Image

1.resizable

声明图片是可以缩放的

2.scaleToFill

保持原图宽高比填充整个空间

3.scaleToFit

保持原图宽高比适应整个空间

----------------------------->8<-----------------------------


SwiftUI Button

1. buttonStyle

当list里面的一个View有多个button的时候,点击这个View所有的button都会响应,要解决这个问题,我们设置了buttonStyle,设置为BorderlessButtonStyle,其实设置成其他的buttonStyle也可以,我们也可以自定义buttonStyle

----------------------------->9<-----------------------------


SwiftUI -> UIKit

1.UIHostingController

把swiftUI的View封装成UIViewController

----------------------------->10<---------------------------


UIKit -> SwiftUI

1.UIViewRepresentable

协议,至少实现两个函数,创建函数makeUIView和更新函数updateUIView,如果需要可以自定义Coordinator

2.UIViewControllerRepresentable

协议,至少实现两个函数,创建函数makeUIViewController和更新函数updateUIViewController,如果需要可以自定义Coordinator

----------------------------->11<---------------------------


Protocol

1.ObservableObject(@Published)

我们在用到环境对象的时候,环境对象的类型必须遵循这个协议,这个协议规定了类型必须是class类,这个类里面的属性加上@Published修饰词,属性改变用到这个属性的View就会更新

----------------------------->12<---------------------------


语法

1.@State

通常是View自己使用,可以起到更新属性的时候就更新View

2.@Binding

子View使用父View的属性时,需要使用这个修饰词可以起到更新属性的时候就更新View,父View和子View的属性绑定在一块,一个改变另一个也会改变,同时更新View

3.@Environment


4.@EnvironmentObject

必须遵循ObservableObject协议,协议详情请看12页,需要在多个页面共享的话 用这个修饰,声明之后不需要赋值,因为它会从父View里面找相应的值,如果找不到app会闪退

5.@ObservedObject

必须遵循ObservableObject协议,协议详情请看12页,复杂类型属性可以使用这个

----------------------------->13<---------------------------


动画

1.publicfuncwithAnimation(_animation:Animation? = .default,_body: ()throws->Result)rethrows->Result

使用:

withAnimation { () -> Result in

                <#code#>

}

2.@inlinable public func animation(_ animation: Animation?) -> some View

使用:

{

}.animation(<#T##animation: Animation?##Animation?#>)

你可能感兴趣的:(swiftUI 知识小结)