SwiftUI 按钮无法在其整个区域上单击

Posted

技术标签:

【中文标题】SwiftUI 按钮无法在其整个区域上单击【英文标题】:SwiftUI Button cannot be clicked on its whole area 【发布时间】:2021-12-27 17:10:08 【问题描述】:

我构建了一个自定义按钮。 我的问题是,它只能在文本元素上单击,而不能在按钮的整个区域上单击。 怎么回事,怎么解决?

struct MyButton: View 
  
  var body: some View
   Button( action: print("pressed") )
   HStack 
      VStack(alignment: .leading)
        Text("Tomorrow").font(.caption)
        Text("23.5.22 KW 23")
      
      Spacer()
    
  
  .padding([.horizontal],4.0)
  .padding([.vertical],2.0)
  .background(RoundedRectangle(cornerRadius: 5).fill(Color.red))
  .buttonStyle(PlainButtonStyle())
  .padding([.horizontal],8.0)
  

【问题讨论】:

将填充移动到 HStack,而不是按钮。 【参考方案1】:

默认情况下,只有实际渲染某些东西的视图部分是可点击的。您需要为您的Button 添加一个.contentShape(Rectangle()) 修饰符以使整个区域具有交互性。

【讨论】:

以上是关于SwiftUI 按钮无法在其整个区域上单击的主要内容,如果未能解决你的问题,请参考以下文章

Swiftui 有没有办法改变按钮的可点击区域

使用 SwiftUI 移动带有图像的按钮

无法单击鼠标区域下方的按钮

SwiftUI:防止 Image() 将视图矩形扩展到屏幕边界之外

SwiftUI 在按钮上触发操作而无需用户单击按钮

swiftui 文本字段和按钮内的按钮