swift - 带有自定义初始化的 SwiftUI 视图
问题描述
假设我正在制作一个如下所示的自定义输入元素:
struct CustomInput : View {
@Binding var text: String
var name: String
var body: some View {
TextField(name, text: $text)
.modifier(InputModifier())
}
}
目前,当我实例化这个视图时,我需要将两者text
和name
名称都传递给参数。我希望能够使name
参数成为可选参数,如下例所示。
CustomInput("Some name", $text)
通常我会为此使用 init 方法。但我不确定如何处理@Binding
init 函数中的属性包装器。
关于如何实现这一目标的任何想法?
解决方案
您可以像这样编写初始化程序:
struct CustomInput : View {
@Binding var text: String
var name: String
init(_ name: String, _ text: Binding<String>) {
self.name = name
// Beta 3
// self.$text = text
// Beta 4
self._text = text
}
var body: some View {
TextField(name, text: $text)
}
}
推荐阅读
- dynamic-programming - 组合不相交子集的最优子结构
- javascript - 苗条的复选框突然无法检查
- html - 通过外部和自定义工具栏设置 videojs 音量
- r - 在列中选择多个字符值以将它们替换为相同的值
- java - 为什么在 JUnit 中测试代码时创建嵌入式 Derby DB 有效,但从 main 方法调用时无效?
- c++ - 如何从 C++ 中的二维向量类型指针访问单个元素
- python - Trying to store a GET Requests to a DataFrame in Pandas, but getting the following error
- laravel - 部署后在 Laravel 网站中导航时找不到 404 请求(路由不起作用)
- mql4 - 在 mql4 中计算账户总盈亏的正确方法?
- python - Python:避免使用会使其他程序崩溃的文件名