【问题标题】:How to forcefully redraw a swift ui view within a button action call如何在按钮操作调用中强制重绘快速 ui 视图
【发布时间】:2021-12-04 11:18:47
【问题描述】:

所以我正在做一些事情,但我需要为我正在上课的课程做这件事

我需要在按钮操作内部的 while 循环的每一步之后更新视图:回调,以便创建一个非常简单的“动画”

有什么方法可以让 UI 视图快速删除所有内容并立即重绘?

我的按钮代码:

                Button(action: {
                    pass_again = true;
                    while(pass_again){
                        (right_text, pass_again) = twos.collapse(dir: Direction.right)
                        cur_id+=1
                        usleep(1000000)
                        // I need to redraw the UI here 
                    }
                    twos.spawn()
                }, label: {
                    Text(right_text)
                }).padding(0.5)

【问题讨论】:

标签: ios swift user-interface swiftui


【解决方案1】:

您可以将 @State 变量绑定到任何 SwiftUI 视图,即 Text(self.yourvar),因此,无论何时更改 @State 值,它都会自动更新文本或与之绑定的任何其他属性。

关于动画,您可以使用.withAnimation 修饰符创建一个简单的动画,swiftUI 将执行

withAnimation {
    your state var updates goes here
}

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    相关资源
    最近更新 更多