我希望能够关闭一张纸并在之后立即呈现全屏覆盖,但是这似乎在两个状态修改之间没有延迟的情况下不起作用。
struct ContentView: View {
@State var sheet = false
@State var cover = false
var body: some View {
Button("Click me for sheet") {
sheet = true
}
.fullScreenCover(isPresented: $cover) {
Text("This is a full screen cover")
}
.sheet(isPresented: $sheet) {
Text("This is a sheet")
Button("This doesn't work") {
sheet = false
cover = true
}
Button("This works") {
sheet = false
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
cover = true
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
单击“这不起作用”按钮会生成下图,演示全屏封面显示为一张纸且未覆盖整个屏幕:
在两次状态修改之间引入一个小延迟(通过单击“This Works”按钮来完成)可以解决此问题。
我对 …
我正在使用此处找到的 swift 模板语言工具:https : //github.com/stencilproject/Stencil
使用主分支。
问题
给定以下.json文件
{
"xcassets" : "dev Sources test1"
}
Run Code Online (Sandbox Code Playgroud)
我希望能够检索由" "“dev”分隔的第一个单词。
我试过的
最新版本的 Stencil 具有拆分功能。但问题是我不知道如何访问结果数组中的第一个元素,而且文档中也没有。
我在模板文件中尝试了以下内容:
{{xcassets|split:" "[0]}}
{{{{xcassets|split:" "}}[0]}}
{{xcassets|split:" ".first}}
{{xcassets|split:" "}}.first}}
{{xcassets|split:" "|[0]}}
{{xcassets|split:" "|.first}}
{{xcassets|split:" "|first}}
Run Code Online (Sandbox Code Playgroud)
没有一个工作。
我试图避免的
我知道我可以这样做,但必须有更好的方法。
{% for element in xcassets|split:" " %}
{% if forloop.first %}
{{ element }}
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
有人对更好的工具有什么建议吗?