IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> SwiftUI 中阶技巧之 01 如何初始化 @State 变量 和 Custom Bindings -> 正文阅读

[移动开发]SwiftUI 中阶技巧之 01 如何初始化 @State 变量 和 Custom Bindings

01 如何初始化 @State 变量

通常状态变量在声明它们时会内联初始化:

@State private var speed: Double = 3.0

但有时您需要根据通过init()函数传递的值来设置它们。所以,你可以这样做:

@State private var speed: Double
init(speed: Double) {
   self._speed = State(initialValue: speed)
}

02 自定义绑定

有时您会希望在绑定更新时对其做出反应。为此,您可以使用.onChange修饰符:

.onChange(of: <binding>) { <binding value> in 
   <do something> 
}

但这仅在绑定更新后才会触发。如果您想在绑定更新时(或之前)做出反应怎么办?您不能在绑定声明中添加didSave或。willSave绑定变量并不真正属于它定义的结构。它是一个与该结构共享的变量,来自另一个结构(祖先结构),其中键变量被定义为类似@State. 您可以将 a 添加didSave到@State变量中,但对于绑定,您必须更有创意。
这就是我所做的。我想要一个文本绑定(附加到 a TextEditor)以将其大小限制为一定数量的字符。如果我使用onChange,并且用户在文本编辑器中键入,则允许键入超出限制的字符,但随后会消失。相反,我想要一个硬停止,当你处于字符限制时?

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:51:08  更:2022-04-30 08:51:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 23:44:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码