gpt4 book ai didi

ios - 如何以编程方式在 UIView 的中心添加文本?

转载 作者:行者123 更新时间:2023-11-29 05:41:22 25 4
gpt4 key购买 nike

我有以下 UIView,如何以编程方式在该 UIView 的中心添加文本?​​

这是 UIView 代码:

    let newView = UIView()
newView.backgroundColor = .groupTableViewBackground
self.view.addSubview(newView)
newView.translatesAutoresizingMaskIntoConstraints = false
if #available(iOS 11.0, *) {
let guide = self.view.safeAreaLayoutGuide
newView.trailingAnchor.constraint(equalTo: guide.trailingAnchor).isActive = true
newView.leadingAnchor.constraint(equalTo: guide.leadingAnchor).isActive = true
newView.topAnchor.constraint(equalTo: guide.topAnchor).isActive = true
newView.heightAnchor.constraint(equalToConstant: 50).isActive = true
} else {
NSLayoutConstraint(item: newView,
attribute: .top,
relatedBy: .equal,
toItem: view, attribute: .top,
multiplier: 1.0, constant: 0).isActive = true
NSLayoutConstraint(item: newView,
attribute: .leading,
relatedBy: .equal, toItem: view,
attribute: .leading,
multiplier: 1.0,
constant: 0).isActive = true
NSLayoutConstraint(item: newView, attribute: .trailing,
relatedBy: .equal,
toItem: view,
attribute: .trailing,
multiplier: 1.0,
constant: 0).isActive = true

newView.heightAnchor.constraint(equalToConstant: 50).isActive = true
}

这是我尝试以编程方式将文本添加到 UIView 的中心,但我不确定为什么它不起作用?

let lb = UILabel()
lb.centerXAnchor.constraint(equalTo: newView.centerXAnchor).isActive = true
lb.centerYAnchor.constraint(equalTo: newView.centerYAnchor).isActive = true
lb.text="anything"
newView.backgroundColor = UIColor.white

// show on screen
self.view.addSubview(newView)
newView.addSubview(lb)
lb.center = newView.center

更新:

如何在导航 Controller 下的 UIView 下方添加此按钮边框?

enter image description here

最佳答案

当涉及到以编程方式向 View 添加约束时,请注意,您必须将 translatesAutoresizingMaskIntoConstraints 设置为 false (但我感觉您已经知道这一点,并且只是忘了将其添加到标签中)

let lb = UILabel()
lb.textAlignment = .center
lb.numberOfLines = 0

newView.addSubview(lb)

lb.translatesAutoresizingMaskIntoConstraints = false
lb.centerXAnchor.constraint(equalTo: newView.centerXAnchor).isActive = true
lb.centerYAnchor.constraint(equalTo: newView.centerYAnchor).isActive = true

添加边框(假设您想将边框添加到newView):

let border = UIView()
newView.addSubview(border)

border.translatesAutoresizingMaskIntoConstraints = false

border.leadingAnchor.constraint(equalTo: newView.leadingAnchor).isActive = true
border.trailingAnchor.constraint(equalTo: newView.trailingAnchor).isActive = true
border.bottomAnchor.constraint(equalTo: newView.bottomAnchor).isActive = true
border.heightAnchor.constraint(equalToConstant: 1).isActive = true

但是对于边框,在 UIView 上编写扩展可能会更清晰,因此如果您再次需要它,代码可以在其他地方重用

关于ios - 如何以编程方式在 UIView 的中心添加文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56515824/

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