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?#>)