SuperAPI AI 工具集

expo-ui-swift-ui

前端与建站

查看项目

更新于 10-15 18:28

技能介绍

用途:在 Expo(React Native)应用中构建 iOS 专属、完全原生手感的界面。@expo/ui/swift-ui 的组件是真正的 SwiftUI 视图,命名沿用 SwiftUI 习惯,适合设置页、表单、详情页,以及需要原生 iOS 列表样式(insetGrouped、plain、sidebar)和 SwiftUI 导航模式(NavigationStack、NavigationSplitView)的场景。

主要能力:提供 List/Section(分区头脚、分组样式)、Toggle、Picker(menu、wheel、segmented、inline)、Gauge、Label(systemImage、tintColor、subtitle)等 iOS 控件;RNHostView 可在 SwiftUI 布局中嵌入 React Native 子树,用于混合页面或渐进迁移;还可通过 requireNativeView 与 Expo Modules API 包装自定义 SwiftUI 视图。跨平台组件(Switch、Slider 等)从 @expo/ui 引入。

使用方式:按需导入组件,例如 import { List, Section, Label, Toggle, Picker, Gauge } from '@expo/ui/swift-ui'; 嵌入写法为 <RNHostView>…</RNHostView>。平台隔离可用 .ios.tsx 文件或 Platform.OS === 'ios' 判断。自定义原生视图通过 requireNativeView('MySwiftUIView') 包装。

限制与注意事项:@expo/ui/swift-ui 仅限 iOS,Android 上导入需加平台守卫;SwiftUI 组件不用 React Native StyleSheet,改用 listStyle、gaugeStyle 等自身属性;RNHostView 子内容受 SwiftUI 固定帧约束、布局由 SwiftUI 驱动、props 需可序列化,不建议混入大量动画;新增 @expo/ui 后需原生重建(npx expo run:ios 或 eas build),Swift 代码变更不支持热重载;屏幕导航建议交给 Expo Router,SwiftUI 只负责页内 UI。具体版本要求与安装方式资料未提供。