有没有更好的方法将数据传递给 SwiftUI 中的自定义键盘视图?

麋鹿

我是 Swift 和 SwiftUI(以及一般编程)的新手。

我正在尝试构建一个关于统计的应用程序,由于这些特定需求,我不得不编写一个带有数字和基本操作的自定义键盘。问题是我想将 X 值和 Y 值存储在两个不同的数组中,所以我必须调用我的“ChartKeyboard”两次:一次用于写入 X 值,另一次用于写入 Y 值。这是我用来调用键盘的代码:

Group {
                if isXorYSelected == .x {
                    ChartKeyboard(isShown: $keyShown, txtInput: $sampleData.XValues[arrayPosition])
                }
                if isXorYSelected == .y {
                    ChartKeyboard(isShown: $keyShown, txtInput: $sampleData.YValues[arrayPosition])
                }
            }

数据存储在自定义 ChartData 对象中:

struct ChartDataObject: Identifiable {
    
    let id = UUID()
    
    var name: String
    let date: Date
    var regType: regressionType
    
    var dataX: [Double]
    var dataY: [Double]
    
    var regressionCoef: Double
    var slope: Double
    var origin: Double
    
}

以及一些状态变量,以防您想知道:

struct NewChart: View {
    
    @State var keyShown = false
    
    @State var sampleData = XYData(XValues: [" "], YValues: [" "])
    
    var newChartType = ["Standard Addition", "External Standard","Internal Standard"]
    @State private var selectedChartType = 0
    
    /*
     Types are:
     1 = Standard Addition
     2 = External Standard
     3 = Internal Standard
     */
    
    @State var newChartTitle = ""
    @State var newChartDate = Date()
    
    @State var isXorYSelected = isXorY.x
    
    @State var arrayPosition = 0

(...)

当从 isXorYSelected 从 .x 更改为 .y 时,结果是一个奇怪的动画:

自定义键盘奇怪的动画

谢谢。

jnpdx

if子句中拥有视图可能会导致它被重绘。相反,您可以使用三元表达式更改参数:

ChartKeyboard(isShown: $keyShown, txtInput: isXorYSelected == .x ? $sampleData.XValues[arrayPosition] : $sampleData.YValues[arrayPosition])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

样式视图传递给 SwiftUI 中的自定义视图

如何将视图模型中的功能绑定到swiftui中的自定义视图?

目标中的SwiftUI(自定义键盘)

具有自定义init的SwiftUI视图

SwiftUI-具有自定义视图的TabView覆盖

SwiftUI 将数据传递给子视图

在ForEach迭代(SwiftUI)中将数据传递到自定义视图中

SwiftUI中具有自定义绑定的可选扩展

在 SwiftUI 中排列自定义视图,没有空间或重叠

为什么我的 SwiftUI 自定义视图没有正确更新?

SwiftUI自定义对齐将视图推到比父视图更宽的位置

将视图数据传递给Kendo网格中的自定义编辑器

将图像名称传递给SwiftUI中的自定义Image子类

带有自定义键盘视图按钮的浓缩咖啡

在所有视图中实现自定义侧边栏 - SwiftUI

如何在SwiftUI中添加自定义容器视图

自定义交叉阴影背景形状或SwiftUI中的视图

有没有一种方法可以将表单请求传递给自定义请求以验证数据

用于自定义视图的SwiftUI ViewModifier

SwiftUI-将数据传递到不同的视图

扩展中的数据视图自定义

有没有一种方法可以将swiftUI视图加载到NSView中?

将视图传递给SwiftUI中的结构

有没有办法将 v-for 中的对象属性传递给 Vue 数据?

有什么方法可以将动态数据传递给Angular中的组件?

有没有一种方法可以传递(索引)SwiftUI中的ForEach中已按下哪个按钮?

将数据传递给自定义视图然后执行该函数是一种好方法吗?

如何将数据传递给从布局调用的自定义视图助手-Zend

在SwiftUI中可以使用带有自定义字体的动态类型大小吗?