
SwiftUI 示例、技巧和技术集合:这个集合旨在帮助您构建应用程序、解决问题,并了解 SwiftUI 的实际工作方式。主要内容来源于hackingwithswift.com,所有示例都是在 macOS Big Sur 系统上运行,基于 Xcode12.4 开发。
此外,我还制作了一个 Swift/SwiftUI 速查手册应用,您可以通过速查手册快速查阅资料,边动手开发应用,轻松上手。您可以通过以下链接下载:
🚧注意事项: 这些示例适用于 macOS/iOS 上的 Swift 编程(主要是 macOS),文字解释内容是通过 Google 翻译完成的,英文水平有限,欢迎大家参与修改和完善。部分内容进行了添加或修改,并且有些部分是新增的。如果您对 Swift 语法不熟悉,可以参考Swift 语法入门,而如果对 SwiftUI 不熟悉,提供了一个SwiftUI 速查手册 供您参考。
🚧版权声明: 内容版权归hackingwithswift.com 原作者所有,本站不承担任何法律责任或风险,且不以商业为目的。如果您认为本站的内容侵犯了您的版权,请及时联系我们。同时,本站无法完全保证内容的准确性,使用本站内容所带来的任何风险由用户自行承担。使用本站即表示您已接受本站的使用条款和隐私政策。
为了方便在 Swift 中进行颜色拾取,提供了一个 Web 小工具UI-Color,此外还提供了一个桌面应用Palette Genius,该应用汇集了许多颜色,并且包含一个颜色选择转换器。欢迎大家提出改进意见。
只是讨论 SwiftUI 事物的地方论坛→。想法来源于sindresorhus/swiftui
✦ 欢迎下载我的macOS/iOS 应用程序来支持我,谢谢 ✦
简要介绍 SwiftUI 的基础
通过实际的应用程序项目学习 SwiftUI
整齐地布局文本
Text 视图创建静态标签?multilineTextAlignment() 调整文本对齐方式?textCase() 使TextField 大写或小写?Label 并排显示文本和图标?redacted() 将内容标记为占位符?privacySensitive() 将内容标记为私有?Markdown 内容?绘制图标,圆形,渐变等
trim() 绘制实体形状的一部分?ContainerRelativeShape?VideoPlayer 播放电影?SpriteView 集成SpriteKit?布局大小,优先级和间距
frame?padding 来控制各个视图之间的间距?GeometryReader 提供相对大小?ForEach 循环创建视图?layoutPriority() 控制布局优先级?foregroundStyle() 提供视觉结构?以结构化方式定位视图
VStack 和HStack 创建堆栈?alignment 和间距spacing 自定义堆栈布局?Spacer 将视图强制移到堆栈中的一侧?Spacer?ZStack 在彼此之上叠加视图?zIndex 更改视图分层的顺序?HStack 和VStack 之间自动切换?ScrollView 添加水平和垂直滚动?ScrollViewReader 使滚动视图移动到某个位置?ScrollView 和GeometryReader 创建3D效果(如Cover Flow)?LazyVGrid 和LazyHGrid 在网格中放置视图?LazyVStack 和LazyHStack 延迟加载视图?HSplitViews 创建左中右三栏布局?响应交互并控制程序状态
Button 和NavigationLink 中的图像的覆盖颜色?TextField 读取文本?TextField 上添加边框?TextField?TextField 中禁用自动更正?TextField 的键盘?TextField?SecureField 创建安全的文本字段?Slider 并从中读取值?Picker 并从中读取值?DatePicker 并从中读取值?Stepper 并从中读取值?labelsHidden() 隐藏Picker,Stepper,Toggle 等标签?TextEditor?ColorPicker 选择颜色?ProgressView 显示任务的进度?ProgressView 显示不确定的进度?Map 视图?Map 视图中显示注释?Safari 中打开 Web 链接?TextEditor 背景颜色?TextField、SecureField 和TextEditor 的提交按钮?快捷方式,旋转方式和外观
scenePhase 检测您的应用何时移至背景或前景?onAppear() 和onDisappear() ?keyboardShortcut() 添加键盘快捷键?AppDelegate 添加到 SwiftUI 应用?滑动,轻击,摇动和其他输入
highPriorityGesture() 强制一个手势先识别另一个手势?simultaneousGesture() 同时识别两个手势?sequenced(before:) 创建手势链?contentShape() 控制视图的可点击区域?allowsHitTesting() 禁用视图的点击?响应交互并控制程序状态
@ObservedObject,@State 和@EnvironmentObject 有什么区别?@StateObject 创建和监视外部对象?@ObservedObject 管理外部对象的状态?@EnvironmentObject 在视图之间共享数据?objectWillChange 手动发送状态更新?SwiftUI 中使用计时器?onChange() 改变状态时如何运行一些代码?创建数据滚动表
ListSection 添加到列表?EditButton 启用对列表的编辑?listRowBackground() 设置列表行的背景色?快速有效地获得用户输入
将视图放置在导航控制器等中
TabView 将视图嵌入选项卡栏中?tabViewStyle() 创建内容的滚动页面?Group 在一起?DisclosureGroup 隐藏和显示内容?iPadOS 添加侧边栏?NavigationView 侧边栏?发生某些情况时显示模式通知
alert?alert 按钮添加动作?alert?appStoreOverlay() 推荐另一个应用程序?将您的用户从一个视图移动到另一个视图
剪辑,大小,比例,旋转等
offset?ButtonStyle 自定义按钮ProgressViewStyle 自定义ProgressViewToggleStyle 自定义ToggleListTextEditor 等的背景色使用自定义形状控制渲染
通过运动使您的界面栩栩如生
使您的UI结构更易于理解
SwiftUI 包装自定义UIView?UIViewRepresentable 结构创建修饰符?学习让您的应用在任何地方都看起来很棒
通过Core Data 集成和更多功能处理数据
SwiftUI 中使用Core Data 的简介SwiftUI 一起使用?SwiftUI 视图访问Core Data 管理的对象上下文?@FetchRequest 创建核心数据获取请求?predicate 过滤核心数据获取请求?SwiftUI 视图添加Core Data 对象?SwiftUI 视图中删除Core Data 对象?FileDocument 和DocumentGroup 创建基于文档的应用程序?fileExporter() 导出文件?SwiftUI 中继续NSUserActivity?LocationButton 读取用户的位置?如何使每个人都能使用您的应用
使用Xcode的帮助构建更好的应用程序
Instruments 来配置您的 SwiftUI 代码并识identify 布局?SwiftUI 中使用Touch ID 和Face ID?Swift 包依赖?如何使用每个 SwiftUI 属性包装器
@State 属性包装器?@StateObject 属性包装器?@Published 属性包装器?@ObservedObject 属性包装器?@EnvironmentObject 属性包装器?@Environment 属性包装器?@Binding 属性包装器?@GestureState 属性包装器?@FetchRequest 属性包装器?@AppStorage 属性包装器?@SceneStorage 属性包装器?@ScaledMetric 属性包装器?@UIApplicationDelegateAdaptor 属性包装器?一如既往,感谢我们出色的贡献者!
使用action-contributors 制作。
Licensed under the MIT License.