使用 Swift 在代码中创建的中心 UILabel
Posted
技术标签:
【中文标题】使用 Swift 在代码中创建的中心 UILabel【英文标题】:Center UILabel created in code using Swift 【发布时间】:2020-07-22 19:46:18 【问题描述】:这可能是您在 Swift 中的 Xcode 中可能遇到的最简单的事情,但由于某种原因,它无法正常工作。
我想在视图中将标签居中。之前视图中唯一的另一件事是以编程方式添加的 webView,但现在我已经删除了它,所以基本上,我有一个空 VC,我试图将标签居中。
有 umpteen answers on SO 关于这个,我已经尝试了每一种组合,但无法让它发挥作用。
谁能提出一种万无一失的方法来完成使 UILabel 居中的简单任务?
以下是我目前拥有的代码以及我已采取的步骤以及结果:
我在 Storyboard 中创建了一个空视图控制器并将其嵌入到导航控制器中。 我将 Storyboard 中的 View Controller 设置为我的 swift VC 类。我也已经清理了项目,关闭并重新打开了 XCode,还删除了故事板并重新创建它以防它被损坏。仍然没有任何效果。
myVC.swift
import UIKit
class myVC: UIViewController,WKScriptMessageHandler, WKNavigationDelegate,WKUIDelegate
var title= "Hello there"
var loadingLabel = UILabel()
override func viewDidLoad()
super.viewDidLoad()
webView.navigationDelegate = self
webView.uiDelegate = self
loadingLabel.translatesAutoresizingMaskIntoConstraints = false
// loadingLabel.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
// loadingLabel.centerYAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true
// loadingLabel = UILabel(frame: CGRect(x: 0, y: self.view.center.y, width: 290, height: 70))
loadingLabel.center = self.view.center
loadingLabel.textAlignment = .center
loadingLabel.font = UIFont(name: "Halvetica", size: 18.0)
loadingLabel.numberOfLines = 0
loadingLabel.text = "TEXT I WANT TO CENTER"
loadingLabel.lineBreakMode = .byTruncatingTail
loadingLabel.center = self.view.center
self.view.addSubview(loadingLabel)
self.title = title
override func loadView()
super.loadView()
【问题讨论】:
【参考方案1】:在添加约束之前将loadingLabel
添加为子视图。
view.addSubview(loadingLabel)
loadingLabel.translatesAutoresizingMaskIntoConstraints = false
loadingLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
loadingLabel.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
【讨论】:
谢谢!您知道如何将乘数添加到 0.2 的垂直约束,以便标签更靠近顶部吗? 不确定,但会尝试弄清楚。在另一篇文章中提出这个问题并发布下面的链接,我会看看并尝试提供帮助。 谢谢。我在这里问了***.com/questions/63042552/… 速度挺快的,去看看。以上是关于使用 Swift 在代码中创建的中心 UILabel的主要内容,如果未能解决你的问题,请参考以下文章
Xcode Swift 调试器不会显示在 if 语句中创建的变量