У меня есть простой ViewController
, который содержит только вид по умолчанию с фоновым изображением, размещенным на нем, я следующий updateViewConstraints
метода, который прекрасно работает на iOS 7
устройствах (без вызова методов setNeedsXXX) :autolayout не работает с iOS8
-(void) updateViewConstraints {
[super updateViewConstraints];
[self.view removeConstraints:self.view.constraints];
NSDictionary *viewsDict = @{@"bgImage":self.bgImageView};
NSArray * constraints;
constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[bgImage]|" options:0 metrics:nil views:viewsDict];
[self.view addConstraints:constraints];
constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[bgImage]|" options:0 metrics:nil views:viewsDict];
[[self.view addConstraints:constraints];
}
однако, этот метод не работает, как ожидалось на iOS 8
устройств, фоновое изображение сдвигается вверх и не укладывались на месте.
любые идеи были бы высоко оценены.
но я все же хочу удалить ограничения по умолчанию, которые появляются из раскадровки, как их удалить? – JAHelia
Попробуйте установить 'translatesAutorezisingMasksToContraints' на' NO'. И проверьте через NSLog, если есть непредвиденные ограничения. Если это так, добавьте ограничения в раскадровку и установите флажок «Удалить при сборке» или что-то в этом роде. – dasdom