Mam widok przewijania z etykietą. Aby wyśrodkować etykietę w górnej środkowej, ja stosuje dwa ograniczenia do niego:Czarny ekran po ustawieniu translatesAutoresizingMaskIntoConstraints na NO
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-30-[questionLabel]"
options:0
metrics:0
views:viewsDictionary]];
[self addConstraint:[NSLayoutConstraint constraintWithItem:self.questionLabel
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:.0]];
Bez ustawiania translatesAutoresizingMaskIntoConstraints dla questionLabel NO, będę napotkasz wyjątek rzucony przez Układ podstawowej. Ostrzega mnie, że nie może spełnić następujące ograniczenia:
(
"<NSLayoutConstraint:0x8e3baf0 V:|-(30)-[UILabel:0xa184ca0] (Names: '|':WLQuestionnaireSingleQuestionView:0xa184050)>",
"<NSAutoresizingMaskLayoutConstraint:0x8e3efa0 h=--& v=--& UILabel:0xa184ca0.midY == + 15>"
)
Tam widzę, że Układ Rdzeń starał się zaspokoić ograniczenie, które zostało automatycznie wygenerowane być wstecznie kompatybilne z maską automatycznej zmiany rozmiaru. W moim rozumieniu, poprawka dla tego powinna polegać na ustawieniu translatesAutoresizingMaskIntoConstraints na NO, ale niestety to spowoduje kompletnie czarny ekran, brak komunikatów debugowania.
Zaimplementowałem widok programowo, bez stalówek.
Walczę z tym samym typem zachowania. znalazłeś obejście? – topwik
Mam ten sam problem. – clearwater82
Przykro mi, to było zbyt dawno temu i nie mam już dostępu do źródła. Uważam, że było obejście problemu jako bardzo konkretne rozwiązanie mojego problemu (prawdopodobnie przede wszystkim unikanie tego problemu), ale nie mogę powiedzieć, że mam teraz rozwiązanie tego konkretnego problemu. – ff10