【问题标题】:How to alternate centerX auto layout constraint in SwiftUI如何在 SwiftUI 中替换 centerX 自动布局约束
【发布时间】:2021-02-26 07:47:06
【问题描述】:

我想像这样调整我的视图,以使元素水平对齐其父元素的中心并引导另一个视图。

我用自动布局实现这个视图就像这样。

consumeLabel.centerXAnchor.constraint(equalTo: parentView.centerXAnchor).isActive = true
unitLabel.leadingAnchor.constraint(equalTo: consumeLabel.trailingAnchor, constant: 5).isActive = true

但我不知道如何通过 SwiftUI 实现这一点。

这就是我正在尝试的:

ZStack {
        Image("waterHomeHeader")
            .resizable()
            .scaledToFill()
            .edgesIgnoringSafeArea(.all)
        HStack {
            Text("1350 / 2917")
                .frame(alignment: .center)
                .foregroundColor(.white)
                .font(.title2)
            Text("ml")
                .foregroundColor(.white)
                .font(.footnote)
                .padding(.leading, 2)
        }
    }

【问题讨论】:

  • SwiftUI 默认将所有内容居中...你会显示你想要做什么的代码吗?
  • @Asperi 我编辑我的问题。

标签: ios swift swiftui autolayout hstack


【解决方案1】:

这是可能的解决方案(使用 Xcode 12.1 / iOS 14.1 测试)

    HStack {
        Spacer()
        Text("1350 / 2917")
            .frame(alignment: .center)
            .foregroundColor(.white)
            .font(.title2)
        Spacer().overlay(
            Text("ml")
                .foregroundColor(.white)
                .font(.footnote)
                .padding(.leading, 2), alignment: .leading)
    }

【讨论】:

  • 使用覆盖的好技巧!但我认为正确和原始的答案是使用alignmentGuide!
  • 请分享您使用alignmentGuide的答案。
  • @Omid 因为我学习了 SwiftUI,很高兴看到另一个展示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多