Autolayout UICollectionView iOS 8

У меня есть UICollectionView, добавленный в UIView. Я просто хочу, чтобы просмотр коллекции изменялся с изменением ориентации, чтобы он соответствовал супервизу (UIView). После того, как я добавлю ограничение макета, просмотр коллекции отсутствует. Я не мог даже заставить первое ограничение работать правильно (ниже)

NSLayoutConstraint *leftSideConstraint = [NSLayoutConstraint constraintWithItem:self.collectionView attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1.0 constant:10.0];

И затем я добавляю ограничение на self.view.

Что я делаю не так? Пожалуйста помоги!

Обновление: вот как это работает. Я новичок в автосалонах. Я просто пытался удовлетворить ограничения один за другим, чтобы убедиться, что все они работают :) Спасибо

NSLayoutConstraint *constraint1 = [NSLayoutConstraint constraintWithItem:self.collectionView attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1.0 constant:5.0];
NSLayoutConstraint *constraint2 = [NSLayoutConstraint constraintWithItem:self.collectionView attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTrailing multiplier:1.0 constant:-5.0];
NSLayoutConstraint *constraint3 = [NSLayoutConstraint constraintWithItem:self.collectionView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-5.0];
NSLayoutConstraint *constraint4 = [NSLayoutConstraint constraintWithItem:self.collectionView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1.0 constant:5.0];
[self.view addConstraints:@[constraint1, constraint2, constraint3, constraint4]];
1 ответ

Вы не можете просто добавить одно ограничение для правильной позиции. Он должен знать его положение x, y, ширину и высоту. С этим одним ограничением вы только дали ему положение x. Вам нужно еще три ограничения, например. верхний, нижний или верхний, ширина, высота. В принципе любой набор ограничений, которые будут полностью описывать позицию, ширину и высоту представления.

licensed under cc by-sa 3.0 with attribution.