swift - Swift UI:将文本居中到圆圈中
问题描述
我尝试在文本视图周围放置一个圆形框架,但我无法正确对齐,也看不出问题出在哪里。如下图所示,文本有时会向左偏移,但应该居中。关于如何解决它的任何想法?
struct ContentView: View {
let result = getDate();
var body: some View {
VStack {
ScrollView(.horizontal, showsIndicators: false) {
HStack(alignment: .top, spacing: 5) {
ForEach(result, id: \.self) {
day in
Text(day.name!)
.frame(width: 35, height: 35, alignment: .center)
.padding()
.overlay(
Circle()
.size(width: 35, height: 35)
.offset(x: 17.5,y: 17.5)
.scale(1.4)
.stroke(Color.orange, lineWidth: 4)
)
}
}
}
Spacer()
}.background(Color.white)
}
}
圆圈偏移了框架大小的一半,因此它的原点应该在中心。文本也应该在 .frame 中居中(宽度:35,高度:35,对齐:.center)。
非常感谢您的帮助!:)
解决方案
.overlay
已经有Text
一个Circle
居中的容器大小,因此只需要使用圆的插图进行操作,而不是移动它,如下所示
Text(day.name!)
.frame(width: 35, height: 35, alignment: .center)
.padding()
.overlay(
Circle()
.stroke(Color.orange, lineWidth: 4)
.padding(6)
)
推荐阅读
- java - 在 Java 中使用 Scanner 获取可变数量的输入
- dart - 颤振底片圆角半径
- android - 如何使 FragmentActivity 扩展 AppCompat 以使用工具栏?
- android - 程序类型已经存在 - Tipsi-Stripe
- javascript - 使用 JavaScript 将定时事件绑定到 DOM 对象
- spring - 如何解决spring bean不可用错误?
- cygwin - 为什么cygwin终端只在桌面上显示.lnk,没有文件夹?
- json - 如何在颤振/飞镖中比较 Json 数据方法
- python - Pyramid 中的这个结构是什么意思?
- php - 在 Woocommerce 中隐藏无运输方式消息