ios - SwiftUI 花了我一上午的时间,只构建了一个小按钮,请救救我
问题描述
所以我只是想建立一个如下所示的列表,但是,SwiftUI 按钮让我发疯,我想让角落半径为 10,但角落实际上总是消失。
这是我想要的行,注意“关注”按钮有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))
解决方案
苹果一直在不断地切换修饰符功能,所以跟上所有的变化很烦人。这是我找到的一个可行的解决方案:
Button(action: {}) {
Text("Follow")
.foregroundColor(Color(.systemTeal))
.bold()
.padding([.leading, .trailing])
.overlay(
RoundedRectangle(cornerRadius: 10)
.stroke(Color.gray)
.foregroundColor(.clear)
)
}
这将产生以下图像:
关键是覆盖 aRoundedRectangle
并更改笔划和角半径。.stroke()
改变形状本身,同时.border()
改变矩形的视图。希望这可以帮助!
推荐阅读
- swift - Swift 函数返回得太早
- python - 登录时运行的脚本不使用互联网
- java - java中使用split函数将字符串转换为字符串数组的运行时错误
- ruby - Groovy 中 Ruby 的 string.unpack('N') 等价物是什么?
- html - 通过输入文本更新 2 个 url 参数并选择
- c# - Make Entity Framework reuse a value
- google-api - 没有使用谷歌联系人 API 3.0 版获取电话号码响应字段
- sql - 子查询返回超过 1 个值
- javascript - 命名动态创建的文本区域
- android - 如何配置物理键来执行某些操作?