垂直对齐 UILabel 中的文本 (xcode)

Vertically align text within a UILabel (xcode)

好久了reader,第一次发贴。我到处寻找解决方案,但我还没有找到有效的答案。

好的问题:我有一个 UILabel,它可以动态分配给它的文本。如果我调整标签的大小以覆盖整个视图控制器,文本就会卡在中间。我找到了一堆解决方案,说要添加以下代码:

detailsLabel.numberOfLines = 0;
detailsLabel.sizeToFit()

但是这没有任何作用。

有人可以看看我的代码并提供建议吗?

import UIKit

class DetailsViewController: UIViewController {

@IBOutlet weak var detailsLabel: UILabel!
@IBOutlet weak var lbldetails: UILabel!


var selectedBeach : Beach?


override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
    detailsLabel.text = selectedBeach?.greaterDetails
    lbldetails.text = (selectedBeach?.beachName ?? "") + " Details"

    detailsLabel.numberOfLines = 0;
    [detailsLabel .sizeToFit()]

}

@IBAction func dismiss(sender: AnyObject) {
    self.dismissViewControllerAnimated(true, completion: nil)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


/*
// MARK: - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    // Get the new view controller using segue.destinationViewController.
    // Pass the selected object to the new view controller.
}
*/

Swift 中的正确代码是

detailsLabel.sizeToFit()

没有 [ ]

对于 Objective-C,它是

[detailsLabel sizeToFit];

您可以执行以下操作来启用 UILabel 支持多行。

 lbldetails.numberOfLines = 0
 lbldetails.preferredMaxLayoutWidth = lbldetails.frame.size.width

这里我认为你的 UILable 支持动态高度根据其文本只是关于不显示多行的问题。

请给UILabel以下限制条件。

希望对您有所帮助。

好的。执行以下操作:

  1. 从标签向左拖动到视图,松开并选择前导Space到容器边距
  2. 从标签向右拖动到视图,松开并选择 Trailing Space to Container Margin
  3. 从标签向上拖动到视图,松开并选择顶部Space到顶部布局指南

之后转到标签的尺寸检查器并确保所有约束都有一个常量 标准

最后但同样重要的是转到标签的属性检查器并确保 Lines 属性 设置为 0。

如有任何问题欢迎随时提问:)