SwiftUI 作为苹果未来主要的一个 UI 框架,随着最近几季 WWDC 的召开已经都相对完善,正常的开发应用基本已经能满足,但是在一些更细的需求里可能暂时还没办法满足,比如 ScrollView 滑动到某个位置,TextField 修改背景颜色等,这些暂时没办法在 SwiftUI 里很好的做到,所以我们可以使用 SwiftUI-Introspect 这个库解决这些问题。
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. 注意事项
使用的时候可能会引起一些问题,需要注意。比如在应用 SwiftUI For Beginners 里的搜索,开始我们想页面没滑动的时候是一个输入框,向上滑动之后在导航栏显示,所以我们使用到了 SwiftUI-Introspect 来监控 ScrollView 的滑动距离,开始我们直接设置一个变量并把 offset 赋值给这个变量,然后在导航栏里判断这个变量到某个值显示搜索按钮,因为每次都更新这个变量,导致在 iOS 14 的某些机型上存在性能问题,最后的解决办法是判断 offset 只在到某个值的时候赋值一次。
所以大家在使用的时候也要多思考相关内容。
4. 关于应用:
更多内容可以查看应用?SwiftUI For Beginners,一个产品设计师从自学的 SwiftUI 开发的各个过程给你讲解 SwiftUI 内容,Apple 应用商店搜索 SwiftUI For Beginners 下载。
?
- 适合设计师人群,互联网从业者或者想自己做个应用的人群; - 不适合技术人群,应用完全是从一个 0 基础的角度去讲解各个阶段需要的知识,对于技术人群过于简单; - 内容讲解?直接代码效果预览,学习过程更加直观; - iPhone, iPad 和 Mac 全平台支持,Apple Watch 和 TV 应用即将上线。
|