我有以下代码,单击圆形按钮中的任何位置,视图都会更改。但是,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)
}
有什么想法吗?谢谢!
答案 0 :(得分:0)
无论您的按钮有多大,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)