跳到主要内容

SwiftUI 与 UIKit 对等项

View Controllers

UIKitSwiftUINote
UIViewControllerView
UITableViewControllerList你也可以使用 ScrollViewLazyHStackLazyVStack
UICollectionViewControllerLazyVGrid and LazyHGrid目前没有 SwiftUI 视图替代这个,但你可以 通过组成 List 来模拟一些布局,如 组合复杂接口的 教程,在 iOS 14 中,我们现在有 LazyVGridLazyHGrid.
UISplitViewControllerNavigationView
UINavigationControllerNavigationView
UIPageViewControllerTabViewiOS 14 中 TabView 的一种风格
UITabBarControllerTabView
UISearchController-
UIImagePickerController-
UIVideoEditorController-
UIActivityViewController-
UIAlertControllerAlert

Views and Controls

TabView下的 的一部分

UIKitSwiftUINote
UILabelText, Label
UITabBarTabView
UITabBarItemTabView.tabItem
UITextFieldTextField对于密码 (isSecureTextEntry) 使用 SecureField
UITextViewTextEditoriOS 14
UITableViewList还有 VStackForm
UINavigationBarNavigationViewNavigationView
UINavigationItemToolbarItemiOS 14
UIBarButtonItemNavigationView.navigationBarItemsNavigationView
UICollectionViewLazyVGrid and LazyHGridiOS 14
UIStackViewHStack, LazyHStack.axis == .Horizontal
UIStackViewVStack, LazyVStack.axis == .Vertical
UIScrollViewScrollView
UIActivityIndicatorViewProgressView with CircularProgressViewStyleiOS 14
UIImageViewImage
UIPickerViewPicker
UIButtonButton, Link
UIDatePickerDatePicker
UIPageControliOS 14. 自动添加 TabView PageTabViewStyle 样式。 你可以控制它的外观 通过 .indexViewStyle
UIProgressViewProgressViewiOS 14
UISegmentedControlPickerPicker 的一种风格 (SegmentedPickerStyle)
UISliderSlider
UIStepperStepper
UISwitchToggle
UIToolBarNavigationView with .toolbariOS 14
MKMapViewMapimport MKMapView 使用它

框架集成 - UIKit 中 SwiftUI

将 SwiftUI 视图集成到现有应用中,并嵌入 UIKit 视图和控制器 进入 SwiftUI 视图层次结构。

UIKitSwiftUINote
UIViewUIViewRepresentable
UIViewControllerUIViewControllerRepresentable

框架集成 - SwiftUI in UIKit

将 SwiftUI 视图集成到现有应用程序中,并将 UIKit 视图和控制器嵌入到 SwiftUI 视图层次结构中。

UIKitSwiftUINote
UIView (UIHostingController)View没有直接转换成UIView,但是可以使用容器视图将视图从 UIViewController 添加到查看层次结构
UIViewController (UIHostingController)View

纯 SwiftUI

iOS 14
iOS 14

在 iOS 14 中,您无需 UIKit 即可编写整个应用程序。 查看来自 WWDC2020 的 SwiftUI 中的应用要点会议。

UIKitSwiftUINote
UIApplicationDelegateApp
UIWindowSceneDelegate