SwiftUI 作為蘋果未來主要的一個(gè) UI 框架嘁圈,隨著最近幾季 WWDC 的召開已經(jīng)都相對(duì)完善寇仓,正常的開發(fā)應(yīng)用基本已經(jīng)能滿足橱赠,但是在一些更細(xì)的需求里可能暫時(shí)還沒辦法滿足,比如 ScrollView 滑動(dòng)到某個(gè)位置蕉世,TextField 修改背景顏色等蔼紧,這些暫時(shí)沒辦法在 SwiftUI 里很好的做到,所以我們可以使用 SwiftUI-Introspect 這個(gè)庫(kù)解決這些問題狠轻。
1. 一些可以使用的 View
- NavigationView (StackNavigationViewStyle)
- NavigationView (DoubleColumnNavigationViewStyle)
- ScrollView
- List
- TabView
- TextField
- Toggle
- Slider
- Stepper
- DatePicker
- Picker (SegmentedPickerStyle)
- Button
- ColorPicker
- TextEditor
2. 一些使用示例
List
List {
Text("Item 1")
Text("Item 2")
}
.introspectTableView { tableView in
tableView.separatorStyle = .none
}
.introspectTableViewCell { cell in
let backgroundView = UIView()
backgroundView.backgroundColor = .clear
cell.selectedBackgroundView = backgroundView
}
ScrollView
ScrollView {
Text("Item 2")
}
.introspectScrollView { scrollView in
scrollView.refreshControl = UIRefreshControl()
}
NavigationView
NavigationView {
Text("Item 2")
.introspectNavigationController { navigationController in
navigationController.navigationBar.backgroundColor = .red
}
}
3. 注意事項(xiàng)
使用的時(shí)候可能會(huì)引起一些問題奸例,需要注意。比如在應(yīng)用 SwiftUI For Beginners 里的搜索向楼,開始我們想頁(yè)面沒滑動(dòng)的時(shí)候是一個(gè)輸入框查吊,向上滑動(dòng)之后在導(dǎo)航欄顯示,所以我們使用到了 SwiftUI-Introspect 來監(jiān)控 ScrollView 的滑動(dòng)距離湖蜕,開始我們直接設(shè)置一個(gè)變量并把 offset 賦值給這個(gè)變量逻卖,然后在導(dǎo)航欄里判斷這個(gè)變量到某個(gè)值顯示搜索按鈕,因?yàn)槊看味几逻@個(gè)變量昭抒,導(dǎo)致在 iOS 14 的某些機(jī)型上存在性能問題评也,最后的解決辦法是判斷 offset 只在到某個(gè)值的時(shí)候賦值一次。
所以大家在使用的時(shí)候也要多思考相關(guān)內(nèi)容灭返。
關(guān)于應(yīng)用:
更多內(nèi)容可以查看應(yīng)用 SwiftUI For Beginners仇参,一個(gè)產(chǎn)品設(shè)計(jì)師從自學(xué)的 SwiftUI 開發(fā)的各個(gè)過程給你講解 SwiftUI 內(nèi)容,Apple 應(yīng)用商店搜索 SwiftUI For Beginners 下載婆殿。
- 適合設(shè)計(jì)師人群,互聯(lián)網(wǎng)從業(yè)者或者想自己做個(gè)應(yīng)用的人群罩扇;
- 不適合技術(shù)人群婆芦,應(yīng)用完全是從一個(gè) 0 基礎(chǔ)的角度去講解各個(gè)階段需要的知識(shí),對(duì)于技術(shù)人群過于簡(jiǎn)單喂饥;
- 內(nèi)容講解?直接代碼效果預(yù)覽消约,學(xué)習(xí)過程更加直觀;
- iPhone员帮, iPad 和 Mac 全平臺(tái)支持或粮,Apple Watch 和 TV 應(yīng)用即將上線。