这是我使用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
}
}
我正在把头发拉出来。
=============================================== =============
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()
}
}
答案 0 :(得分:1)
您应该通过设置约束来使用Autolayout。在你的情况下在故事板。
删除答案中显示的大多数node_module
代码:
类ViewController:UIViewController {
babel-loader
}
在故事板中:
testLabel
您的标签看起来正确。我是全宽的,因为您将// 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`属性的文本居中: