我尝试使用SwiftUI将一个按钮插入到另一个按钮内部。但是,如果我按下那个按钮,它也会动画显示被按下的外部按钮,即使它不运行操作闭包。有没有方法可以防止这种情况,也许使用自定义ButtonStyle?
它看起来是这样的:
这是按下内部按钮时的外观:
下面是我的代码:
var body: some View {
Button(action: {
print("outer button pressed")
}) {
HStack {
Text("Button")
Spacer()
Button(action: {
print("inner button pressed")
}) {
Circle()
.foregroundColor(Color.accentColor.opacity(0.2))
.frame(width: 28.0, height: 28.0)
.overlay(Image(systemName: "ellipsis"))
}
}
.padding()
.accentColor(.white)
.background(Color.accentColor)
.clipShape(RoundedRectangle(cornerRadius: 14.0, style: .continuous))
}
.frame(maxWidth: 200.0)
.padding()
}
2条答案
按热度按时间ulydmbyx1#
在ZStack中使用2个不同的按钮如何?
kyvafyod2#
可能有更优雅的解决方案,但下面的代码应该会给予您所需的行为:
因此,我使用
HStack
和Circle
与两个onTapGesture
修饰符组合,而不是两个按钮。