外观风格
添加自定义的页面控件
在我们已经准备好给视图添加自定义的包装在 SwiftUI UIViewRepresentable
中的 UIPageControl
了。

第 1 步
创建一个新的 SwiftUI 视图文件,命名为 PageControl.swift
。让 PageControl
遵循 UIViewRepresentable
协议。
UIViewRepresentable
和 UIViewControllerRepresentable
类型拥有相同的生命周期,其方法与其基础 UIKit
类型相对应。
第 2 步
将文字框换成页面控件,把布局从 VStack
换成 ZStack
。
因为我们正在将页面计数和绑定传递给当前页面,所以页面控件已显示正确的值。

接下来让页面控件可以交互,以便用户可以点击一侧或另一侧在页面之间移动。
第 3 步
在 PageControl
中创建嵌套的 Coordinator
类型,然后添加一个 Coordinator()
方法来创建并返回一个新的 coordinator
。
由于 UIPageControl
这样的 UIControl
子类使用 arget-action
模式而不是代理,所以此 Coordinator
实现了 @objc
方法来更新当前页面的绑定。
第 4 步
添加 coordinator
作为 valueChanged
事件的目标,将 updateCurrentPage(sender:)
方法指定为要执行的操作。
第 5 步
最后,在 CategoryHome
中,用新的页面视图替换占位符特征图片。

第 6 步
现在来尝试所有不同的交互, PageView
展示了 UIKit
和 SwiftUI
视图和控制器是如何协同工作的。
