2016-03-11 2 views
0

У меня есть простой подкласс UIView, содержащий метку. Этот подкласс имеет следующий метод инициализации:Вертикальное выравнивание метки с помощью PureLayout

override init(frame: CGRect) { 
    super.init(frame: frame) 

    self.autoSetDimension(.Height, toSize: 44) 
    titleLabel.backgroundColor = UIColor.clearColor() 
    titleLabel.translatesAutoresizingMaskIntoConstraints = false 
    titleLabel.numberOfLines = 0 
    self.addSubview(titleLabel) 

    titleLabel.text = "Some text" 
    titleLabel.sizeToFit() 

    titleLabel.autoPinEdgeToSuperviewEdge(.Leading, withInset: 20) 
    titleLabel.autoPinEdgeToSuperviewEdge(.Trailing, withInset: 20) 
    titleLabel.autoAlignAxisToSuperviewAxis(.Horizontal) 
} 

На самом деле, текст метки может измениться во время выполнения, но в любом случае, я не вижу этикетку вертикально по центру в пределах его родительского вида, когда я запустить приложение .. Может ли кто-нибудь помочь мне в этом?

Заранее спасибо

+0

Что такое PureLayout? Это какая-либо библиотека авто-макета? –

+0

@BharatModi https://github.com/PureLayout/PureLayout – AppsDev

ответ

0

это увидеть, если он может помочь вам,

let label = UILabel() 
    label.translatesAutoresizingMaskIntoConstraints = false 

label.text = "Some dummy text" 
self.view.addSubview(label) 

let centreH = NSLayoutConstraint(item: label, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 1) 

let centreV = NSLayoutConstraint(item: label, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 1) 

self.view.addConstraint(centreH) 
self.view.addConstraint(centreV) 
Смежные вопросы