【问题标题】:How to center UILabel using frame: CGRect如何使用框架使 UILabel 居中:CGRect
【发布时间】:2018-12-31 15:22:07
【问题描述】:

我试图将标签放置在视图的中心。然而,它总是偏离中心。为什么是这样?

这是代码:

lazy var readyLabel = UILabel(frame: CGRect(x: screenWidth*0.5 - screenWidth*0.3, y: screenHeight*0.5, width: screenWidth*0.6, height: screenHeight*0.1 ))

readyLabel.textAlignment = .center
readyLabel.text = "3"
readyLabel.textColor = UIColor(displayP3Red: 1, green: 1, blue: 1, alpha: 1)
readyLabel.alpha = 0
readyLabel.font = UIFont(name: "Futura-Bold", size: (75.0/375)*screenWidth)
readyLabel.sizeToFit()
self.view.addSubview(readyLabel)

【问题讨论】:

  • 您给标签固定大小和位置,然后调用sizeToFit 更改大小,因此也将其从中心移除。删除该调用并理想地使用约束而不是这种无法真正正常工作的魔法。

标签: ios swift uilabel


【解决方案1】:
label.center = CGPoint(x: view.frame.size.width  / 2, y: view.frame.size.height / 2)

或者

child.center = parent.convert(parent.center, from:parent.superview)

【讨论】:

    【解决方案2】:

    在最后一行之后添加:

    readyLabel.center = self.view.convertPoint(self.view.center, from: self.view.superview)
    

    【讨论】:

      【解决方案3】:

      只需删除该行:

      readyLabel.sizeToFit()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-23
        • 1970-01-01
        • 2021-09-04
        • 1970-01-01
        • 2014-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多