У меня возникла странная проблема с моим NSLayoutConstraint.ios 8.3 NSLayoutAttributeNotAnAttribute crash
Я недавно обновил свой iPhone до 8.3 и использовал последний Xcode.
Приложения сбой на прошивке 8.3 и точка останов указует мне:
self.triangleTopConstraint = [NSLayoutConstraint constraintWithItem:self.triangle
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeTop
multiplier:1.0
constant:0.0];
[self addConstraint:self.triangleTopConstraint];
, которая работала до прошивки 8.3.
Однако, я прочитал на этой странице здесь:
Это говорит использовать NSLayoutAttributeNotAnAttribute
, когда отношения не имеют второго вида. Поэтому я заменил его на это:
self.triangleTopConstraint = [NSLayoutConstraint constraintWithItem:self.triangle
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0
constant:0.0];
[self addConstraint:self.triangleTopConstraint];
Но приложение все еще терпит крах на iOS 8.3.
Я что-то упустил?
Он «работал» как? Вы никогда не могли бы установить _top_ чего-то абсолютного значения. Я не знаю, что делал ваш код, но всегда было неправильно. – matt
У меня есть subview, называемый треугольником, который является подчиненным пользовательским представлением. Я использую это ограничение анимации, чтобы изменить координату Y треугольника subview. Как я могу добиться того, что хочу, используя правильный путь, пожалуйста, просветите меня matt – Zhang
Вы устанавливаете верхнюю часть отношения 'self.triangle' _in к чему-то другому, например, к верхней части своего супервизора (это не _have_, чтобы быть вершина супервизора, это всего лишь обычная вещь, поэтому я использую ее в качестве примера). – matt