【问题标题】:Swift UI: Center Text into CircleSwift UI:将文​​本居中到圆圈中
【发布时间】:2020-06-06 01:04:57
【问题描述】:

我尝试在文本视图周围放置一个圆形框架,但我无法正确对齐,也看不出问题出在哪里。如下图所示,文本有时会向左偏移,但应该居中。关于如何解决它的任何想法?

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) 中居中。

非常感谢您的帮助! :)

【问题讨论】:

    标签: swift user-interface textview geometry alignment


    【解决方案1】:

    .overlay 已经有以TextCircle 为中心的容器大小,因此只需要在不移动圆的情况下进行操作,如下所示

    Text(day.name!)
        .frame(width: 35, height: 35, alignment: .center)
        .padding()
        .overlay(
            Circle()
            .stroke(Color.orange, lineWidth: 4)
            .padding(6)
        )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      • 2015-11-05
      • 1970-01-01
      • 1970-01-01
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多