ciągu mojego głównego widoku kontrolerze Dodaję widok kontrolera widoku dziecka jako podrzędny, w następujący sposób:Korzystanie iOS Auto Layout ustalenie ograniczeń między kontrolerem widoku dziecko i jego widzenia dominującej
ChildViewController *cvc = [[ChildViewController alloc] init];
[self addChildViewController:cvc];
[self.view addSubview:cvc.view];
[cvc didMoveToParentViewController:self];
i ja Teraz chciałbym użyć NSLayoutConstraint do ustawienia cvc.view w widoku macierzystym (self.view), tak, że cvc.view zajmuje pozycję 25 punktów nad spodem widoku rodzica. Rozumiem, że następujące czynności powinny działać:
UIView *superview = self.view;
UIView *childview = cvc.view;
NSLayoutConstraint *cn =
[NSLayoutConstraint withItem:childview
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:superview attribute:NSLayoutAttributeBottom
multiplier: 1.0
constant: -25.0];
[superview addConstraint: cn];
Ale ograniczenie nie powiedzie się w czasie wykonywania. Początkowo sądziłem, że maska autoreizingująca w widoku podrzędnym powodowała problemy (i śledząc wideo wstępne WWDC 2012 na automatycznym layoucie), więc ustawiłem [childview setTranslatesAutoresizingMaskIntoConstraints:NO]
, ale wtedy widok potomny po prostu się nie wyświetla.
Co robię źle?