gpt4 book ai didi

macos - MacOS 上 SwiftUI 中的按钮问题

转载 作者:行者123 更新时间:2023-12-02 00:57:32 28 4
gpt4 key购买 nike

我在 MACOS 上使用 SwiftUI

如果我这样做:

      Button(action: { } ) {
Text("Press")
.padding()
.background(Color.blue)
}

我明白了:

enter image description here

两个灰色区域是可点击按钮的末端。但我希望按钮是蓝色区域的形状。任何想法如何让整个蓝色区域都可点击。

(我确实考虑过使用 .onTapGesture,但这不会为按钮设置动画,以便您知道您已经点击了它。)

最佳答案

您可以使用ButtonStyle来实现您想要的外观。然后根据传入的配置值指定颜色和其他样式属性。

如果有一个快乐的媒介,您可以继承默认的按钮半径、基于文本长度的自动宽度和其他属性,那就太好了,但至少能够指定所有属性并获得您想要的外观想要。

希望这有帮助!

import SwiftUI

struct BlueButtonStyle: ButtonStyle {
func makeBody(configuration: Self.Configuration) -> some View {
configuration.label
.foregroundColor(configuration.isPressed ? Color.blue : Color.white)
.background(configuration.isPressed ? Color.white : Color.blue)
.cornerRadius(6.0)
.padding()
}
}

struct ContentView: View {
var body: some View {
VStack {
Text("Hello World")
.frame(maxWidth: .infinity, maxHeight: .infinity)

Button(action: {
}) {
Text("Press")
.frame(maxWidth: 100, maxHeight: 24)
}
.buttonStyle(BlueButtonStyle())
}
}
}


struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}

关于macos - MacOS 上 SwiftUI 中的按钮问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58419161/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com