在 SwiftUI 中使用 UIControl 组件

Posted

技术标签:

【中文标题】在 SwiftUI 中使用 UIControl 组件【英文标题】:Use UIControl Component in SwiftUI 【发布时间】:2019-11-03 00:37:14 【问题描述】:

我是 SwiftUI 和 ios 的第一名。我想在我的 SwiftUI 中使用 SimpleCheckBox。

但我只得到

Error:(14, 18) static method 'buildBlock' requires that 'Checkbox' conform to 'View'

这是我的代码。

var body: some View 
  HStack 
    Checkbox(frame: CGRect(x: 50, y: 50, width: 25, height: 25))
    Text("HelloWorld!")

  

如何在 SwiftUI 中使用 UIControl?

【问题讨论】:

您需要将Checkbox 包裹在UIViewRepresentable 中 - 请参阅developer.apple.com/tutorials/swiftui/interfacing-with-uikit 【参考方案1】:

在 SwiftUI 中编写自定义 CheckBox 的工作量并不大。这是一个工作的最低版本:

struct CheckBox: View 

    @Binding var isSelected: Bool

    var body: some View 
        Button(action:  self.isSelected.toggle() ) 
            Image(systemName: self.isSelected ? "checkmark.circle" : "circle")
        
    

【讨论】:

以上是关于在 SwiftUI 中使用 UIControl 组件的主要内容,如果未能解决你的问题,请参考以下文章

如何创建一组具有在 SwiftUI 中编辑的单独变量的文本字段?

UIButton 上的 UIControl.State.Highlighted 图像仅在第一次触摸事件后有效

SwiftUI - 披露组扩展行为 - 保持顶部项目静态

使用 SwiftUI 扁平化元组视图

SwiftUI 组嵌套在 VStack 中抛出错误

水平 ScrollView (SwiftUI) 中的动画展开/折叠组