码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SwiftUI 和 Combine 的学习:一


    文章目录

    • 简介
        • 命令式和声明式编程
        • 声明式 UI
        • SwiftUI 和 Combine 简介
    • SwiftUI 基础
        • Modifier
        • 多尺寸的预览
    • 数据状态和绑定
        • 投影属性
        • propertyWrapper
        • 操作回溯和数据共享
        • ObservableObject
        • 使用 @Published 和自动生成
        • @EnvironmentObject
        • 总结
    • SwiftUI 进阶
        • 使用内置图标库 (SF Symbols)
        • 自定义 View Modifier
        • 渐变背景
        • 动画
            • 隐式动画
            • 显式动画
        • 包装 UIView 类型
    • Combine 和异步编程
        • 传统异步编程
        • 响应式异步编程模型
        • Combine 基础
        • Publisher
            • 事件发布
            • 有限事件流和无限事件流
        • Operator
        • Subscriber
        • 其他角色
            • Subject
        • Scheduler
            • 关于 where
            • 关于 when
    • Publisher 和常见的 Operator
        • 序列 Publisher 及其操作
        • reduce 和 scan
        • compactMap 和 flatMap
        • removeDuplicates
        • 错误处理
        • 转换错误类型
        • 抛出错误
        • 从错误中恢复
        • 嵌套的泛型类型和类型抹消
        • 操作符熔合
        • 其他的 Operator
        • 使用 merge 整合事件流
    • 响应式编程的边界
        • 时序
        • zip
        • combineLatest
        • 响应式和指令式的桥梁
        • Foundation 中的 Publisher
        • URLSession Publisher
        • Timer Publisher
        • Notification Publisher
        • @Published
        • 订阅和绑定
        • 通过 sink 订阅 Publisher 事件
        • 通过 assign 绑定 Publisher 值
        • Publisher 的引用共享
        • Cancellable, AnyCancellable 和内存管理

    简介

    命令式和声明式编程

    如果说指令式是教会计算机 “怎么做”, 那么声明式就是告诉计算机要 “做什么”。指令式编程是描述过程,期望程序执行以 得到我们想要的结果;而声明式编程则是描述结果,让计算机为我们考虑和组织出 具体过程,最后得到被描述的结果。
    现代语言中,一般使用函数式编程或者 DSL 的方式来实现声明式的编程方式。

    声明式 UI

    一般来说,View = f(State) 中的函数 f 是纯函数,也就是对于某个特定的输入 State, 所对应的 View 是确定的,不随其他变量而改变。我们可以单纯地通过控制和改变 State 来得到确定的 UI,这是使用声明式的方法来构建 UI 的基础。

    SwiftUI 和 Combine 简介

    SwiftUI 和 Combine 都是在 WWDC 2019 上 Apple 公布的开发框架,它们都是由纯 Swift 编写的。前者是一个声明式 UI 的用户界面开发框架,后者是基于响应式编程, 用于处理数据流的框架。

    SwiftUI 基础

    Modifier

    按照这个定义,大致来说,view modifier 分为两种类别:

    → 像是 font,foregroundColor 这样定义在具体类型 (比如例中的 Text) 上,然后 返回同样类型 (Text) 的原地 modifier。

    → 像是 padding,background 这样定义在 View extension 中,将原来的 View 进行包装并返回新的 View 的封装类 modifier。

    原地 modifier 一般来说对顺序不敏感,对布局也不关心,它们更像是针对对象 View 本身的属性的修改。而与之相反,封装类的 modifier 的顺序十分重要。

    多尺寸的预览

    数据状态和绑定

    在 SwiftU

  • 相关阅读:
    Java笔试题
    Delft3D水动力-富营养化模型实践技术高级应用
    Servlet与设计模式
    Oracle中ALTER TABLE的五种用法(四、五)
    Springboot启动mongoDB报错后禁用mongoDB自动配置
    nodejs + express 实现 http文件下载服务程序
    Qt 样式设置
    Mycat与ShardingSphere如何选择(未完待续)
    详解SQL中Groupings Sets 语句的功能和底层实现逻辑
    DFS - 常见算法题总结
  • 原文地址:https://blog.csdn.net/xiangxiang07/article/details/126389434
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号