The*_*eil 8 cornerradius swiftui
使用 UIKit,可以使用以下方法为控件(例如按钮)提供完美的圆角(在每侧产生一个圆圈):
exampleButton.cornerRadius = exampleButton.frame.size.height/2
Run Code Online (Sandbox Code Playgroud)
如何使用 SwiftUI 视图实现相同的结果?
因为视图是动态定义的,所以我不确定如何引用该帧大小,除非它是手动设置的(这不是这里的愿望)。
Button(action: {
// ...
}) {
Text("I'm a Button")
}
.cornerRadius(???)
Run Code Online (Sandbox Code Playgroud)
d9r*_*rad 12
另一个解决方案是使用形状,在这种情况下是Capsule形状,并使用clipShape修饰符
以已经提到的例子为例,它会是这样的:
Button(action: {
// ...
}) {
Text("I'm a Button")
.padding(.horizontal, 10)
.background(Color.red)
.clipShape(Capsule())
}
Run Code Online (Sandbox Code Playgroud)
可以调整那里的填充,以便您的视图看起来像您想要的那样。胶囊将始终具有完美圆形的末端。在这种情况下,我不希望文本太靠近圆形边缘,所以我在两侧应用了一些填充。
需要记住的一点是,在 SwiftUI 中,修饰符的应用顺序非常重要。
您需要将其定义为正方形,然后在角上进行四舍五入,如下所示:
Button(action: {
// ...
}) {
Text("I'm a Button")
.frame(width:150, height:150)
.background(Color.red)
.cornerRadius(.infinity)
}
Run Code Online (Sandbox Code Playgroud)
附注。添加了一些背景颜色以提高可见性
| 归档时间: |
|
| 查看次数: |
3207 次 |
| 最近记录: |