gpt4 book ai didi

ios - 使用 swift 设置 UiStackview 内 UiLabel 的高度

转载 作者:行者123 更新时间:2023-11-30 11:22:08 27 4
gpt4 key购买 nike

我正在 UiStackview 中动态添加 View 。由于 UiStackview 不是常规 View ,所以我无法为其添加底部边框。这就是为什么我计划在其末尾添加一个 UILabel

我将在 UIStackview 末尾添加的标签将被视为边框。我想把它的高度设为1点。并给它一个背景颜色。并将其高度扩展到屏幕的整个宽度。

但是它的高度没有得到控制。谁能告诉我问题出在哪里?

这是小代码片段

let label = UILabel(frame: CGRect(x: 0, y: 0, width: 10, height: 1))
label.backgroundColor = UIColor.black
label.text = ""


bottomBorder.addArrangedSubview(label)

我将其添加到主堆栈 View 的末尾。它被添加到主堆栈 View 中,但我认为高度为 30 点。或者可能是 UiLabel 的默认高度

我的问题是:

  1. 如何在 stackview 末尾添加 UiLabel 或边框(垂直对齐)
  2. 有什么方法可以直接向我的 stackview 添加边框吗?四侧边框或至少底部边框?

最佳答案

您有 2 个替代方案来实现此目的:

1-将 stackview 放入 UIView parentView

enter image description here

2-不要将UILabel直接添加到UIStackView,将UILabel添加到UIView,然后添加UIViewUIStackView,这样您就可以将任何您想要的分隔符添加到 UIView 中。

执行此操作的代码:

override func viewDidLoad()
{
super.viewDidLoad()
stackView.distribution = .fillEqually

let v1 = getViewForStackView(lblText: "lbl1")
let v2 = getViewForStackView(lblText: "lbl2")

stackView.addArrangedSubview(v1)
stackView.addArrangedSubview(v2)
}


func getViewForStackView(lblText:String)->UIView
{
let rectView = CGRect(x: 0, y: 0, width: 100, height: 100)
let view = UIView(frame: rectView)
view.backgroundColor = .green
let label = UILabel()
label.text = lblText
label.backgroundColor = .red
addFillingSubview(parentView: view, subview: label, insets: UIEdgeInsets(top: 8, left: 8, bottom: 8, right: 8))
return view
}

func addFillingSubview(parentView:UIView, subview: UIView, insets: UIEdgeInsets = .zero)
{
subview.translatesAutoresizingMaskIntoConstraints = false
parentView.addSubview(subview)

let views = ["subview": subview]
let metrics = ["top": insets.top, "left": insets.left, "bottom": insets.bottom, "right": insets.right]

parentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "|-(left)-[subview]-(right)-|", options: [], metrics: metrics, views: views))
parentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-(top)-[subview]-(bottom)-|", options: [], metrics: metrics, views: views))
}

输出:

enter image description here

关于ios - 使用 swift 设置 UiStackview 内 UiLabel 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51149361/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com