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.