将标签置于子视图中

时间:2016-11-11 15:01:28

标签: ios swift

这是我使用ios的第一步

class ViewController: UIViewController {

// MARK: Properties

@IBOutlet weak var testLabel: UILabel!

// MARK: Events

override func viewDidLoad() {
    super.viewDidLoad()
}

override func viewDidLayoutSubviews() {
    testLabel.numberOfLines = 0
    testLabel.sizeToFit()
    testLabel.center.x = testLabel.superview!.center.x
    //from here the label is centered
}

// MARK: Actions

@IBAction func trackButton(_ sender: UIButton) {
    //first call: the label is aligned on the left
    //following calls: the label is centered
    testLabel.text = Track.createTrack().toText()
    //even the following commented code does not allow the centering 
    //on the first call

    //testLabel.sizeToFit()
    //testLabel.center.x = testLabel.superview!.center.x
}
}

设计如下: design view

我正在把头发拉出来。

=============================================== =============

更新了项目

class ViewController: UIViewController {

// MARK: Properties    
@IBOutlet weak var testLabel: UILabel!

// MARK: Events

override func viewDidLoad() {
    super.viewDidLoad()
}

override func viewDidLayoutSubviews() {
    //testLabel.numberOfLines = 0
    //testLabel.sizeToFit()
    //testLabel.center.x = testLabel.superview!.center.x
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

// MARK: Actions

@IBAction func trackButton(_ sender: UIButton) {
    testLabel.text = Track.createTrack().toText()
}
}

enter image description here

1 个答案:

答案 0 :(得分:1)

您应该通过设置约束来使用Autolayout。在你的情况下在故事板。

  • 删除答案中显示的大多数node_module代码:

    类ViewController:UIViewController {

    babel-loader

    }

在故事板中:

  • 选择testLabel
  • 删除标签的所有限制条件:

enter image description here

您的标签看起来正确。我是全宽的,因为您将// MARK: Properties @IBOutlet weak var testLabel: UILabel! // MARK: Actions @IBAction func trackButton(_ sender: UIButton) { testLabel.text = Track.createTrack().toText() } 对齐设置为Test Label

您可以将其设置为StackView,但这也会影响fill中的所有观看次数。如果这不是可接受的,则将标签移出堆栈视图。

此外,您希望将center Alignment`属性的文本居中:

enter image description here