带按钮的 SwiftUI NavigationLink
SwiftUI NavigationLink with Button
我有以下代码,单击圆形按钮中的任意位置视图会发生变化。但是,self.user.day += 1
操作只有在我直接单击按钮文本时才会执行。这对我来说是非常奇怪的行为,尤其是 Swift & SwiftUI 的新手。
NavigationLink(destination: NewsView(), tag: 1, selection: $selection){
Button(action: {self.selection = 1; self.user.day += 1}){
Text("News").font(.body)
}
.frame(width: 100.0, height: 100.0)
.foregroundColor(Color(red: 0.96, green: 0.96, blue: 0.47))
.background(Color.black)
.cornerRadius(90)
}
有什么想法吗?谢谢!
SwiftUI 不会检测空白区域的点击,无论您的按钮有多大,这不包括 NavigationLink
。
一个简单的方法,在你的情况下只是将框架设置为文本而不是像这样的按钮
Button(action: { print("tapped"); self.selection = 1 }) {
Text("News").font(.body)
.frame(width: 100.0, height: 100.0)
}
//.frame(width: 100.0, height: 100.0)
.foregroundColor(Color(red: 0.96, green: 0.96, blue: 0.47))
.background(Color.black)
.cornerRadius(90)
我有以下代码,单击圆形按钮中的任意位置视图会发生变化。但是,self.user.day += 1
操作只有在我直接单击按钮文本时才会执行。这对我来说是非常奇怪的行为,尤其是 Swift & SwiftUI 的新手。
NavigationLink(destination: NewsView(), tag: 1, selection: $selection){
Button(action: {self.selection = 1; self.user.day += 1}){
Text("News").font(.body)
}
.frame(width: 100.0, height: 100.0)
.foregroundColor(Color(red: 0.96, green: 0.96, blue: 0.47))
.background(Color.black)
.cornerRadius(90)
}
有什么想法吗?谢谢!
SwiftUI 不会检测空白区域的点击,无论您的按钮有多大,这不包括 NavigationLink
。
一个简单的方法,在你的情况下只是将框架设置为文本而不是像这样的按钮
Button(action: { print("tapped"); self.selection = 1 }) {
Text("News").font(.body)
.frame(width: 100.0, height: 100.0)
}
//.frame(width: 100.0, height: 100.0)
.foregroundColor(Color(red: 0.96, green: 0.96, blue: 0.47))
.background(Color.black)
.cornerRadius(90)