SwiftUI:按钮圆角边缘的边框尺寸加倍

标签 swift button swiftui overlay

我在按钮上看到双边框,看起来很奇怪。我尝试使用 RoundRectangle 叠加创建形状,并得到了相同的结果。这是我使用的代码:

    ScrollView(.horizontal, showsIndicators: false) {
        HStack {
            Button(action:{ action()}) {
                   Label("Name", image: "info")
               }
            .frame(height: 40)
            .padding(EdgeInsets(top: 0, leading: 10, bottom: 0, trailing: 10))
            .foregroundColor(.green)
            .background(.clear)
            .overlay(
                Capsule(style: .continuous)
                .stroke(.green, lineWidth: 1)
            )}}

结果是: enter image description here

最佳答案

问题不在于边框两侧的厚度是两倍,而在于顶部和底部的厚度是一半。该按钮被 ScrollView 剪裁。

在这种情况下,您可以通过向 HStack 添加填充来修复它:

之前:

enter image description here

.padding([.top, .bottom], 1)添加到HStack:

enter image description here

关于SwiftUI:按钮圆角边缘的边框尺寸加倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75359465/

相关文章:

swift - 如何在 Swift 中禁用 macOS X 的 NSToolbar 的按钮?

swift - 在 swift 4 中使用 SocketIO 时丢失对变量的引用

swift - 如何在 swiftUI 中以线性样式 ProgressView 显示 WKWebView 的估计进度?

swiftui - 为什么分配后状态重置为零

Color.clear 背景上的 SwiftUI onTapGesture 与 Color.blue 的行为不同

ios - 即使我在 viewWillAppear 中注册并在 viewWillDissapear 中注销,观察者方法也会被多次调用

ios - Swift:如何使用服务器 SSL 证书发出 Https 请求

ios - 在 Cocos2D V3 中单击时展开的 Sprite 按钮

java - 用户按下键盘上的 Enter 键后禁用移动浏览器上的按钮

javascript - 禁用按钮,直到达到一个数字