首页 > 解决方案 > SwiftUI 花了我一上午的时间,只构建了一个小按钮,请救救我

问题描述

所以我只是想建立一个如下所示的列表,但是,SwiftUI 按钮让我发疯,我想让角落半径为 10,但角落实际上总是消失。

这是我想要的行,注意“关注”按钮有cornerRadius和适当的高度

这是我想要的行,注意“关注”按钮有cornerRadius和适当的高度,

然而,在我搜索了大量该死的答案之后,我只能得到这个,角落甚至消失了!!!:

然而在我搜索了大量该死的答案之后,我只能得到这个,角落甚至消失了!

Button(action: {

            }) {
                if person.isInKnock {
                    Text("Follow").font(.system(size: 14)).foregroundColor(Color(ColorUtils.hexStringToUIColor(hex: Constants.THEME.THEME_COLOR))).padding()
                }
                else {
                    Text("Invite to Knock").font(.system(size: 14)).foregroundColor(Color(ColorUtils.hexStringToUIColor(hex: Constants.THEME.THEME_COLOR))).padding()
                }

        }.frame(height: CGFloat(30)).border(Color.gray, width: CGFloat(1)).cornerRadius(CGFloat(10))

标签: iosswiftswiftui

解决方案


苹果一直在不断地切换修饰符功能,所以跟上所有的变化很烦人。这是我找到的一个可行的解决方案:

Button(action: {}) {
            Text("Follow")
                .foregroundColor(Color(.systemTeal))
                .bold()
                .padding([.leading, .trailing])
                .overlay(
                    RoundedRectangle(cornerRadius: 10)
                        .stroke(Color.gray)
                        .foregroundColor(.clear)
                )
        }

这将产生以下图像:

圆角矩形按钮

关键是覆盖 aRoundedRectangle并更改笔划和角半径。.stroke()改变形状本身,同时.border()改变矩形的视图。希望这可以帮助!


推荐阅读