2013-08-28 11 views
30

Başarılı bir Foursquare check in durumunda iPhone uygulamam, gösterilen görünümün üstüne bir görünüm ekler.UIView'yi Autolayout'u kullanarak mevcut bir UIView'ın üzerine nasıl programlayabilirim?

Görünümün X ve Y üzerinde ortalanmasını ve bunun otomatik olarak belirli bir genişliğe ve yüksekliğe sahip olmasını isterim, ancak program kısıtlı olarak hangi kısıtlamaların ekleneceğinden emin değilim. Storyboard'da nasıl yapılacağını biliyorum, ancak uygulamada başarılı bir harekete yanıt olarak daha sonra bu görünümün aynısını yapmak için kodun tam olarak ne yazacağından emin değilim.

Düzgün çalışmıyor ve UIView'in loadNibNamed ile yüklediği bir ucu var:

SuccessView *successfulCheckInView = [[SuccessView alloc] initWithFrame:CGRectZero]; 
successfulCheckInView.placeNameLabel.text = properVenue.name; 
successfulCheckInView.placeAddressLabel.text = properVenue.address; 
successfulCheckInView.delegate = self; 

[self.ownerVC.view addSubview:successfulCheckInView]; 
+0

? ConstraintWithItem: attribute: relatedBy: toItem: attribute: multiplier: constant :? kullanmayı denediniz mi? – rdelmar

cevap

74

bu deneyin: Swift için güncellenmiş

NSLayoutConstraint *xCenterConstraint = [NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:view2 attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0]; 
[superview addConstraint:xCenterConstraint]; 

NSLayoutConstraint *yCenterConstraint = [NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:view2 attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0]; 
[superview addConstraint:yCenterConstraint]; 

:

tam olarak nasıl yapılacağını bilmiyorum ne
NSLayoutConstraint(item: view1, attribute: .centerX, relatedBy: .equal, toItem: view2, attribute: .centerX, multiplier: 1, constant: 0).isActive = true 

NSLayoutConstraint(item: view1, attribute: .centerY, relatedBy: .equal, toItem: view2, attribute: .centerY, multiplier: 1, constant: 0).isActive = true 
+1

view1 ve view2 nedir? – Lucas

+3

Görüşlerin merkezlerini hizaladığımız durumda ilişkinin sırası önemli değil. "view1" ve "view2" yalnızca hizaladığınız farklı görünümlerdir. Sipariş önemli değilse – Eric

+0

, örn. view1, görünüm2 ile merkez olacak mı, diğer yöne göre mi? –