ios - 如何在 SwiftUI 中使用 Checkbox 创建文本?
问题描述
我需要带有文本字段的复选框(✅ 如待办事项列表)。目前我已经创建了如下按钮对象:
Button(action: {
// do when checked / unchecked
//...
}) {
HStack(alignment: .top, spacing: 10) {
Rectangle()
.fill(Color.white)
.frame(width:20, height:20, alignment: .center)
.cornerRadius(5)
Text("Todo item 1")
}
}
我需要在 SwiftUI中保存checked
和声明。unchecked
解决方案
这是我创建的一个简单的、可重复使用的复选标记组件,它遵循与 iOS 上的其他复选标记类似的配色方案(例如,在消息应用程序中选择消息):
import SwiftUI
struct CheckBoxView: View {
@Binding var checked: Bool
var body: some View {
Image(systemName: checked ? "checkmark.square.fill" : "square")
.foregroundColor(checked ? Color(UIColor.systemBlue) : Color.secondary)
.onTapGesture {
self.checked.toggle()
}
}
}
struct CheckBoxView_Previews: PreviewProvider {
struct CheckBoxViewHolder: View {
@State var checked = false
var body: some View {
CheckBoxView(checked: $checked)
}
}
static var previews: some View {
CheckBoxViewHolder()
}
}
您可以在其他视图中使用它,如下所示:
...
@State private var checked = true
...
HStack {
CheckBoxView(checked: $checked)
Spacer()
Text("Element that requires checkmark!")
}
...
推荐阅读
- for-loop - roblox 中的“限制必须是数字”错误(数据保存和加载)
- cassandra - 在 Cassandra 中处理不可压缩/重叠的 sstable
- vue.js - 为什么 keydown 事件会被广播到新渲染的组件?
- ios - iOS 应用程序是否可以充当信标,即使它在后台运行?
- java - 从 MainGUI 类调用另一个类中的 GUI,但得到空白白框
- javascript - 元素的内容必须由格式良好的字符数据或标记组成。标记
- javascript - 消息:“模型“item”的路径“_id”处的值“xxxxxx”转换为 ObjectId 失败,名称:“CastError”,模型:模型 { item } }
- json - Scala - 如何将 JSON 键和值转换为列
- crystal-reports - BO 服务器中报表的位置 - 水晶报表
- javascript - 动态展平嵌套的对象数组javascript