2016-04-25 17 views
0

Ich habe eine self.photoView vom Typ UIView und ich habe photoImageView, die UIImageView ist. Ich möchte das PhotoImageView X und Y in der self.photoView zentrieren.Zentrieren einer Ansicht in der übergeordneten Ansicht mit Autolayout-Einschränkungen

Dieser Code macht nichts!

let photoImageView = UIImageView.imageViewForPhotoTaken(self.photoView.bounds, image: img) 
      photoImageView.contentMode = UIViewContentMode.ScaleAspectFit 

      self.photoView.addSubview(photoImageView) 

      // set the autolayout constraints 
      self.photoView.addConstraint(NSLayoutConstraint(item: self.photoView, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: photoImageView, attribute: NSLayoutAttribute.CenterX, multiplier: 1.0, constant: 0)) 
+0

genannt wird, ich die Unter vi ausrichten möchten ew (PhotoImageView) zentrieren Sie horizontal und zentrieren Sie vertikal. –

+0

Sie müssen eine Einschränkung für beide Achsen erstellen, und höchstwahrscheinlich sollten Sie auch eine Beschränkung für Höhe und Breite deklarieren ... Ihr Code zeigt nicht an, dass die UIImageView eine andere Größe als Null haben soll – Loxx

+0

löst Ihr Problem ? – HardikDG

Antwort

0

Sie müssen translatesAutoresizingMasksIntoConstraints = false auf photoView und photoImageView aufrufen, bevor yo die Einschränkungen hinzufügen.

+0

Ich habe das versucht, aber es hat nicht funktioniert. –

0

Versuchen Sie diesen Code:

let photoImageView = UIImageView(image:UIImage(named: "logo")) 
photoImageView.contentMode = UIViewContentMode.ScaleAspectFit 
self.photoView.addSubview(photoImageView) 
photoImageView.translatesAutoresizingMaskIntoConstraints = false 

// set the autolayout constraints 
self.photoView.addConstraint(NSLayoutConstraint(item: photoImageView, attribute: .CenterX, relatedBy: .Equal, toItem: self.photoView, attribute: .CenterX, multiplier: 1, constant: 0)) 
self.photoView.addConstraint(NSLayoutConstraint(item: photoImageView, attribute: .CenterY, relatedBy: .Equal, toItem: self.photoView, attribute: .CenterY, multiplier: 1, constant: 0)) 

Wenn Sie Zentrum wollen in horizontaler und vertikaler beide sollten Sie sowohl Zentrale X 'gesetzt und Zentrale Y' Einschränkung

Auch stellen Sie Sie bitte richtige gesetzt haben Einschränkung für die ‚self.photoView‘, bevor Sie diese

Sie diesen Code setzen sollte ‚viewDidAppear‘ sein kann oder jede Methode, die nach diesem

Verwandte Themen