【问题标题】:How to change Dimensions of an SwiftUI Default Button on MacOS?如何在 MacOS 上更改 SwiftUI 默认按钮的尺寸?
【发布时间】:2021-10-11 21:22:51
【问题描述】:

我想更改 SwiftUI 按钮的行为,以便其中两个自动获得相同的大小。

但不知何故,我总是只影响我的 View 的 ParentView。

import SwiftUI

struct ContentView: View {
    var body: some View {
        HStack {
            Button("ABC", action: {return}).frame(maxWidth: .infinity).background(Color.green)
            Button("EFCHHSJFJSJDNJS", action: {return}).buttonStyle(MorePaddingButtonStyle()).frame(maxWidth: .infinity).background(Color.yellow)
        }.frame(maxWidth: .infinity)
    }
}


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

它的大小应该是这样的:

该示例位于 GitHub 存储库中的 here

希望有人可以帮助我根据背景/形状调整它们的大小(很可能是默认按钮)。

【问题讨论】:

  • 您能否为预期的结果添加一张图片?
  • 当然我会制作某种模型。至少我希望两者具有相同的大小,以便它们各占 50%,或者较小的具有与大的相同的宽度。
  • @RajaKishan 完成 ;)

标签: swift macos button swiftui


【解决方案1】:

使用带有标签的按钮

struct ContentView: View {
    var body: some View {
        HStack {
            Button(action: { print("ABC") }) {
                Text("ABC").frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
            }.buttonStyle(PlainButtonStyle()).background(Color.green)
            
            Button(action: { print("EFCHHSJFJSJDNJS") }) {
                Text("EFCHHSJFJSJDNJS").frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
            }.buttonStyle(MorePaddingButtonStyle()).background(Color.yellow)
        }
    }
}

默认按钮样式不能设置宽度。它会根据包含的按钮自动设置宽度。所以请使用 PlayStyle 或您自己的 MorePaddingButtonStyle。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    相关资源
    最近更新 更多