2016-04-25 47 views
0

我有一個self.photoView,它是UIView類型的,我有photoImageView,它是UIImageView。我想將photoImageView X和Y置於self.photoView中。使用Autolay約束在父視圖中居中視圖

此代碼沒有做任何事情!

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

調用的任何方法,我要對齊的子VI ew(photoImageView)中心水平和中心垂直。 –

+0

您需要爲這兩個軸創建一個約束,並且很可能您還應該聲明高度和寬度約束......您的代碼不表示UIImageView應該是除0以外的任何大小 – Loxx

+0

解決了您的問題? – HardikDG

回答

0

你需要調用translatesAutoresizingMasksIntoConstraints = falsephotoViewphotoImageView喲添加約束之前。

+0

我試過了,但沒有奏效。 –

0

試試這個代碼:

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)) 

如果你想中心在水平和垂直兩個你應該設置兩個「中心X」和「中心Y」約束

同時請確保你已經把適當的限制設置之前,「self.photoView」這

你應該把這個代碼可以是在「viewDidAppear」或者是在此之後

相關問題