首页 > 解决方案 > 单击搜索栏时如何显示单独的视图?[SwfitUI]

问题描述

我正在尝试实现一个显示单独视图的搜索栏(参见 Twitter 示例)。

显示 twitter 搜索栏动画的 Gif

这是如何实施的?我最初的想法是以某种方式使用 aNavigationView来环绕搜索栏视图,当用户点击搜索栏时,调用NavigationLink会调出单独的视图。

但这是正确的方法吗?Twitter 示例似乎没有显示NavigationView像“< Back”按钮这样的元素,动画过渡也不匹配。

标签: swiftswiftui

解决方案


FocusState是一个状态,但它设置了一个变量。因此,您可以.onChange(of:perform:)像这样关闭该更改。

struct ContentView: View {
    @FocusState var isFocused: Bool
    ...
    var body: some View {
        TextField("TextField", text: $text)
                .focused($isFocused)
                .onChange(of: isFocused, perform: { newValue in
                    print("focus")
                })
        ...
    }
}

如果您在 other 上使用它,它将不起作用TextFields,但会触发它。


推荐阅读