当前位置: 首页 > news >正文

SwiftUI:iOS 常用视图组件速查

适合:Java(Android) + JS(Vue/React)开发者。

目标:看完知道 iOS 有哪些组件、对应什么、什么时候用。

推荐学习 SwiftUI,UIKit 只需要认识即可(很多老项目还在用)。


一、整体层级

一个 App 大概就是这样:

App │ NavigationStack │ View ├── Text ├── Image ├── Button ├── TextField ├── List ├── ScrollView ├── VStack ├── HStack └── ZStack

可以理解成

HTML ↓ body ↓ div ↓ button ↓ img ↓ input

二、布局组件(最重要)

VStack

垂直排列

VStack{Text("A")Text("B")}

效果

A B

对应

CSS display:flex; flex-direction:column;

Android

LinearLayout vertical

HStack

水平排列

HStack{Text("A")Text("B")}

效果

A B

对应

display:flex; flex-direction:row;

ZStack

层叠

ZStack{Image()Text()}

类似

position:absolute

或者 Android

FrameLayout

Spacer

占满剩余空间

HStack{Text("左")Spacer()Text("右")}

效果

左 右

等于 CSS

justify-content:space-between

三、文本

Text

Text("Hello")

修改

Text("Hello").font(.title).bold().foregroundStyle(.red)

对应 HTML

<span> <p>

四、图片

Image

本地

Image("logo")

SF Symbols

Image(systemName:"house")

网络图片

一般使用

AsyncImage
AsyncImage(url:url)

五、按钮

Button("登录"){}

或者

Button{}label:{Text("登录")}

对应

<button>

六、输入框

TextField

TextField("请输入用户名",text:$username)

密码

SecureField("密码",text:$password)

对应

<input>

七、文本编辑

TextEditor(text:$content)

对应

<textarea>

八、开关

Toggle("开启通知",isOn:$isOpen)

对应

Android

Switch

HTML

checkbox

九、选择器

Picker

Picker("城市",selection:$city){Text("北京")Text("上海")}

类似

<select>

十、Slider

Slider(value:$progress)

对应

SeekBar

十一、Stepper

数字加减

Stepper(value:$count){Text("\(count)")}

十二、DatePicker

DatePicker("日期",selection:$date)

日期选择。


十三、ProgressView

加载

ProgressView()

进度

ProgressView(value:0.5)

十四、List(★★★★★)

最常用。

List(users){userinText(user.name)}

就是

RecyclerView UITableView

也是

HTML ul li

十五、ScrollView

滚动

ScrollView{}

横向

ScrollView(.horizontal){}

十六、LazyVStack

大量数据使用

ScrollView{LazyVStack{}}

类似

RecyclerView

按需加载。


十七、Grid

网格

LazyVGrid(...)

对应

GridLayout CSS Grid

十八、NavigationStack(★★★★★)

导航

NavigationStack{HomeView()}

进入页面

NavigationLink("详情"){DetailView()}

就是

push pop

十九、TabView(★★★★★)

底部导航

TabView{Home()Profile()}

对应

BottomNavigationView TabBar

二十、Sheet

弹窗

.sheet(isPresented:$show){Detail()}

底部弹出。


二十一、Alert

提示框

.alert("title",isPresented:$show){}

二十二、ConfirmationDialog

操作菜单

类似

ActionSheet

二十三、Menu

右键菜单

Menu{}

二十四、Popover

小气泡

iPad 使用较多。


二十五、Toolbar

导航栏按钮

.toolbar{}

二十六、Form

表单

Form{}

自动分组。

设置页大量使用。


二十七、Section

分组

Section{}

List 中经常使用。


二十八、Divider

分割线

Divider()

二十九、Group

逻辑分组。

不会增加布局。


三十、常见 Modifier(修饰符)

所有 View 都能调用。

大小

.frame()

内边距

.padding()

背景

.background()

圆角

.cornerRadius()

边框

.border()

阴影

.shadow()

透明

.opacity()

隐藏

.hidden()

点击

.onTapGesture{}

长按

.onLongPressGesture{}

生命周期

.onAppear{}.onDisappear{}

动画

.animation()

三十一、状态管理(★★★★★)

变量

@State

父子绑定

@Binding

共享对象

@StateObject@ObservedObject@EnvironmentObject

开发天天写。


三十二、页面生命周期

进入页面

.onAppear{}

离开页面

.onDisappear{}

类似

onResume onPause

三十三、最常见页面组合

登录页

NavigationStack ↓ VStack ↓ Image ↓ TextField ↓ SecureField ↓ Button

列表页

NavigationStack ↓ List ↓ NavigationLink

详情页

ScrollView ↓ VStack ↓ Image ↓ Text ↓ Button

个人中心

NavigationStack ↓ List ↓ Section ↓ NavigationLink

商城首页

NavigationStack ↓ ScrollView ↓ LazyVStack ↓ LazyVGrid

三十四、UIKit 对照(老项目)

SwiftUIUIKit
ViewUIView
TextUILabel
ImageUIImageView
ButtonUIButton
TextFieldUITextField
TextEditorUITextView
ListUITableView
LazyVGridUICollectionView
NavigationStackUINavigationController
TabViewUITabBarController
AlertUIAlertController
SheetPresent ViewController
ScrollViewUIScrollView
ToggleUISwitch
SliderUISlider
PickerUIPickerView
ProgressViewUIProgressView
DatePickerUIDatePicker

三十五、开发中每天都会写的组件(按优先级)

⭐⭐⭐⭐⭐(必须掌握)

  • NavigationStack
  • VStack
  • HStack
  • Spacer
  • Text
  • Image
  • Button
  • TextField
  • List
  • ScrollView
  • NavigationLink
  • TabView
  • .padding()
  • .frame()
  • .background()
  • .toolbar()
  • @State

⭐⭐⭐⭐(经常用)

  • LazyVStack
  • LazyVGrid
  • Section
  • Form
  • ProgressView
  • Alert
  • Sheet
  • Divider
  • Toggle
  • Picker
  • AsyncImage

⭐⭐⭐(按需掌握)

  • TextEditor
  • Slider
  • Stepper
  • DatePicker
  • ConfirmationDialog
  • Menu
  • Popover
  • Group

最后给前端/Android 开发者的思维转换

Web/AndroidSwiftUI
divVStack / HStack / ZStack
span / pText
imgImage
buttonButton
inputTextField
textareaTextEditor
ul/liList
RecyclerViewList / LazyVStack
GridLayoutLazyVGrid
flex-columnVStack
flex-rowHStack
position:absoluteZStack
RouterNavigationStack
BottomNavigationTabView
DialogAlert / Sheet
State(React/Vue)@State
Props@Binding
Global Store@EnvironmentObject

一句话总结

如果你已经熟悉前端或 Android,可以把 SwiftUI 理解为:

  • 布局 = Flex(VStack/HStack/ZStack)
  • 页面 = React/Vue 的组件(View)
  • 状态 = React Hooks(@State@Binding
  • 导航 = Router(NavigationStack
  • 列表 = RecyclerView /v-forListForEach

掌握这些核心组件,就已经能完成绝大多数企业级 iOS 应用页面开发。

http://www.jsqmd.com/news/1248942/

相关文章:

  • 数字同事:RPA+AI如何提升团队生产力
  • 静态原生IP代理配置指南:从原理到VMLogin实战应用
  • AI公司技术架构演进与商业化路径全解析
  • 具身视觉语言导航与问答技术解析与应用
  • 帝舵青岛售后门店核验指南|权威公告最新认证网点(2026年7月最新) - 帝舵售后服务中心官网
  • Java面试八股文1000问(2026金九银十版),涵盖基础/网络/算法/设计模式/多线程
  • 兰州2026瓷砖空鼓维修靠谱推荐:厨卫阳台地砖空鼓修复 - 筑宅安
  • 苏州闲置翡翠快速变现攻略,认准易奢福 31 年连锁大品牌更靠谱 - 遁地的c
  • Appium自动化测试:详解应用启动与退出的核心配置与最佳实践
  • 实用视频格式转换工具:转GIF、转音频和各类格式转换
  • YOLOv11多模态目标检测:FDAM模块提升特征融合效果
  • 制造业智能库存管理:ERP系统如何破解库存积压与缺料难题
  • 头风隐毒探因:铅汞毒与代谢毒的双重启示
  • 文字转图片工具:提升内容创作效率的必备利器
  • 智能体规划技术:ReAct、CoT与Planning解析
  • 通用CPU+GPU运行神经网络推理 VS RDK X5运行神经网络推理,前者CPU软件调度+GPU软件并行计算,包括数据预处理和神经网络模型推理;后者ISP + 芯片微码调度 + 硬件并行处理单元实现
  • 红桥区欧姆龙光电传感器公司推荐,欧姆龙位移传感器采购公司哪家好|天津本地工控元器件口碑推荐 - mobible
  • 北京腕表维修服务中心怎么选(2026年7月更新)——高端腕表复杂故障该去哪修? - 亨得利官方售后
  • 2026 年二建备考软件深度横评,自有电子版题库专属工具 - 讲清楚了
  • 解决99%部署报错!OpenClaw 2.7.9双系统安装与故障修复指南
  • 2026 济南名表卡地亚欧米茄回收渠道盘点,闲置腕表稳妥变现参考 - 资讯洞察员
  • 基于Hadoop+SparkML+Kafka的实时信用卡欺诈检测系统架构与实践
  • 2026年AI高薪岗位趋势与自学大模型避坑指南
  • 2026年全国塑烧板除尘器实力厂商TOP5推荐 - 品研笔录
  • AI工具助力本科生高效完成毕业论文写作
  • 基于OpenWrt软路由构建网络逆向分析平台:从协议探测到行为建模
  • AI智能写作工具如何提升学术论文效率与质量
  • 实测无坑|Hermes Windows 一体化包,快速搭建专属本地智能助手
  • 同城店铺曝光
  • 2026 年大连断桥铝门窗定制厂家五家多维度对比参考 - GrowUME