【发布时间】:2020-05-19 20:11:01
【问题描述】:
有没有办法以编程方式简单地追加或插入 Text() 或其他视图?诸如单击按钮或在视图上使用轻击手势插入新视图之类的操作?
我以为会是这样的
var body: some View {
ZStack{ Text("some text") }.gesture( TapGesture().onChanged(self.add( Text("some new text") )))
}
或类似的东西,但它似乎不受支持,而且我没有找到任何记录在案的方法来插入新项目。如果这不可能,那么动态添加这样的元素的替代方法是什么?只需使用我想要的元素创建一个全新的视图吗?
【问题讨论】:
-
你能更具体一点,你想添加什么样的视图以及何时添加?
-
老实说,我所说的几乎都是死的。当我点击屏幕时,我想添加一个 Text() 实例或 TextField()。我了解如何在其中创建带有文本的静态视图,但我只是不明白如何允许用户动态添加/删除它们
-
那么它是文本还是文本字段?是只有1个还是很多?在 ZStack 中相互添加一堆不同的视图不会看起来很奇怪吗?
-
让我们坚持使用文本。是的,可能,我只是在学习。效果是能够添加文本,然后将它们在屏幕上拖动到您想要的任何位置。每次点击时,都会添加另一个文本。
-
哦,你没有提到它们必须是可拖动的,你可能想看看这个gist.github.com/ohayon/83305d9c48e4fc3e7c3851ba10ddc4c9,至于添加新元素你可以像我在下面写的那样添加项目到一个数组。