2015-08-26 23 views

cevap

5

Bu yaklaşım, self.cenBut düğmeniz için IBoutlet öğesinin kullanıldığı NSLayoutConstraint Kullanımı'nı kullanıyor.

viewDidLoad yılında
func setupConstraints() { 
    let centerX = NSLayoutConstraint(item: self.cenBut, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0) 
    let centerY = NSLayoutConstraint(item: self.cenBut, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0) 
    let height = NSLayoutConstraint(item: self.cenBut, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 22) 
    self.cenBut.translatesAutoresizingMaskIntoConstraints = false 
    self.view.addConstraints([centerX, centerY, height]) 
} 

()

self.view.removeConstraints(self.view.constraints) 
self.setupConstraints() 
+0

da denedim ama bana bir hata veriyor, yine de yardım için teşekkürler! –

11

Eğer gerekiyorsa Ayrıca x ve y belirtebilirsiniz

myButton.center = self.view.center 

gibi .center özelliğini deneyin.

myButton.center.x = self.view.center.x // for horizontal 
myButton.center.y = self.view.center.y // for vertical 
0

Ben

yourButton.setCenter(self.view.center); 

olmalıdır Ama programlı bir bakış çerçevesi ayarlarsanız amaçlandığı gibi, sizin düzen kısıtlamaları çalışmayabilir unutmayın.

0

sen kısıtlamaları kullanılarak verildiği için, siz de merkezini ayarlamak için kısıtlamaları kullanmak gerekir böylece merkezini ayarlamak mümkün olmayacaktır:

let centerYCon = NSLayoutConstraint(item: labelMessage, 
     attribute: .CenterY, 
     relatedBy: .Equal, 
     toItem: contentView, 
     attribute: .CenterY, 
     multiplier: 1.0, 
     constant: 0.0); 
    contentView.addConstraint(centerYCon); 


    let centerXCon = NSLayoutConstraint(item: labelMessage, 
     attribute: .CenterX, 
     relatedBy: .Equal, 
     toItem: contentView, 
     attribute: .CenterX, 
     multiplier: 1.0, 
     constant: 0.0); 
    contentView.addConstraint(centerXCon); 

size ne "programlı biliyoruz ki tahmin ediyorum "autolayout kısıtlamaları ile anlamına gelir. Eğer gerçekten autolayout kullanıyorsanız, butonunuzun özelliklerini setTranslatesAutoresizingMaskIntoConstraints öğesini false olarak ayarlamanız gerekir.

+0

teşekkürler, nasıl false setTranslatesAutoresizingMaskIntoConstraints ayarlayacaktır? –

+0

Zaten bunu deneyin ama bana hala bir hata veriyor –

+0

hata nedir? – Loxx