Swift UI: 将文本置于圆心
Swift UI: Center Text into Circle
我尝试在文本视图周围放置一个圆形框架,但我无法正确对齐它,也看不出问题出在哪里。正如您在下图中看到的,文本有时会向左偏移,而它应该居中。关于如何修复它有什么想法吗?
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(width: 35, height: 35, alignment: .center).
中居中
非常感谢您的帮助! :)
.overlay
已经有以 Text
和 Circle
为中心的容器大小,因此只需要在不移动圆的情况下操作,如下所示
Text(day.name!)
.frame(width: 35, height: 35, alignment: .center)
.padding()
.overlay(
Circle()
.stroke(Color.orange, lineWidth: 4)
.padding(6)
)
我尝试在文本视图周围放置一个圆形框架,但我无法正确对齐它,也看不出问题出在哪里。正如您在下图中看到的,文本有时会向左偏移,而它应该居中。关于如何修复它有什么想法吗?
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(width: 35, height: 35, alignment: .center).
中居中非常感谢您的帮助! :)
.overlay
已经有以 Text
和 Circle
为中心的容器大小,因此只需要在不移动圆的情况下操作,如下所示
Text(day.name!)
.frame(width: 35, height: 35, alignment: .center)
.padding()
.overlay(
Circle()
.stroke(Color.orange, lineWidth: 4)
.padding(6)
)