SwiftUI NavigationLink仅文本区域可点击,如何设置全区域可响应?
你当前的写法里,NavigationLink的可点击范围默认只绑定到传入的文本标签上,后续添加的frame、background等修饰符只是改变了组件的视觉外观,并没有扩展可点击区域。
要让整个蓝色背景区域都能触发导航,只需把完整的按钮样式视图作为NavigationLink的label参数传入,而不是仅传入文本。修改后的代码如下:
NavigationLink { WelcomeView() } label: { Text("Login") .foregroundColor(.white) .frame(width: 300, height: 50) .background(Color.blue) .cornerRadius(10) .padding() } .disabled(authenticateUser())
调整后,NavigationLink的可点击区域会覆盖整个label视图的范围——也就是你设置的300x50蓝色背景区域,点击任意位置都能触发导航到WelcomeView。
内容的提问来源于stack exchange,提问作者etayluz
相关产品推荐
相关产品推荐

