使用 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的主要内容,如果未能解决你的问题,请参考以下文章

使用在另一个 Swift VC 文件中创建的对象?

Xcode Swift 调试器不会显示在 if 语句中创建的变量

在 TableView 中创建的 7 个单元格后添加部分 - Swift

Swift 项目的代码签名问题

为什么不能引用在Swift项目的同一目录中创建的类或结构?

从 AppDelegate 访问在故事板的 tableview 中创建的视图?