我很确定这是SwiftUI中的错误,但是我想知道是否有人遇到过它并找到了解决方法。我的正常用例是显示一个搜索字段,但我已将其简化为一个简单的文本字符串就可以显示该错误的地方。
创建一个单视图应用程序,将其复制到ContentView中,然后运行它。点击搜索图标两次,然后滚动视图;您会看到标题下滚动的文本。
import SwiftUI
struct ContentView: View {
private var items = (0 ... 50).map {String($0)}
@State private var condition = false
var searchButton: some View {
Button(action: {self.condition.toggle()}) {
Image(systemName: "magnifyingglass").imageScale(.large)
}
}
var body: some View {
NavigationView {
VStack {
if condition {
Text("Peekaboo")
}
List {
ForEach(items, id: \.self) {item in
HStack {
Text(item)
}
}
}
}
.navigationBarTitle("List of Items")
.navigationBarItems(leading: searchButton)
}
}
}
答案 0 :(得分:0)
也许这是一个错误,请向Apple提交反馈,但是目前NavigationView
的行为-如果导航栏的主要内容是List/ScrollView/Form
,它只会折叠导航栏 。因此,要解决此问题,请将VStack
移至List
或移出NavigationView
1)
var body: some View {
NavigationView {
List {
if condition {
Text("Peekaboo")
}
ForEach(items, id: \.self) {item in
2)
var body: some View {
VStack {
if condition {
Text("Peekaboo")
}
NavigationView {
List {
答案 1 :(得分:0)
一个View似乎无法应付可变数量的View。 解决此奇怪行为的方法是:
hello="hello"
def reverse(string):
reversed_string=""
for x in range(len(string)-1,-1,-1):
reversed_string+=string[x]
string=reversed_string
reverse(hello)
print (hello)
让我知道它是否有效,如果不行,请告诉我们您使用的设备/系统。已在Xcode 11.6 Beta,Mac 10.15.5,目标ios 13.5和Mac催化剂上进行了测试。