【问题标题】:Center UILabel inside UIView in Stack View在堆栈视图中的 UIView 中居中 UILabel
【发布时间】:2025-12-31 18:25:04
【问题描述】:

我在情节提要中安排了一个水平堆栈视图。至于堆栈视图的视图,它是以编程方式完成的,因为堆栈视图内的视图数量是动态的。我已将堆栈视图设置为 'Fill Equally'。

对于里面的views,会有一个UIlabel。我遇到的问题是我无法将 UILabel 居中在将添加到堆栈视图中的 UIView 中。

这是我的代码:

    let main1 = UIView()
    main1.backgroundColor = UIColor.red
    stackView.addArrangedSubview(main1)

    let text1 = UILabel()
    text1.text = "Lvl 1"
    text1.textColor = .blue
    text1.textAlignment = .center
    text1.backgroundColor = .yellow
    text1.sizeToFit()
    main1.addSubview(text1)


    let label2 = UIView()
    label2.backgroundColor = UIColor.blue
    stackView.addArrangedSubview(label2)

对于这个例子,我只添加了 2 个视图,并将标签添加到第一个视图。那么,如何将每个 UIView 中的 UILabel 居中?

【问题讨论】:

  • 为这个容器内的每个 UIView + UILabel 和中心标签创建一个容器视图。

标签: ios uilabel uistackview


【解决方案1】:

您可以使用自动布局来实现这一点。检查下面的代码:

...

main1.addSubview(text1)

text1.translatesAutoresizingMaskIntoConstraints = false
text1.centerXAnchor.constraint(equalTo: main1.centerXAnchor).isActive = true
text1.centerYAnchor.constraint(equalTo: main1.centerYAnchor).isActive = true

【讨论】: