У меня есть вид в iPad-приложении, который в полноэкранном режиме расширяется, чтобы заполнить весь экран и доступен как в портретной, так и в альбомной ориентации.iOS- Программно установите левое и правое поля подвыборок равными
Этот вид также содержит много подвид (например, прямоугольные карты) и scrollview.
[программно добавить их в представление контента, который создается программным способом (в представлении прокрутки) вычисляет размер кадра карты соответственно]
contentView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 640, 2000)];
[contentView addSubview:firstCard];
self.formScrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
self.formScrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
self.formScrollView.scrollEnabled=true;
self.scrollView addSubview:contentView];
self.scrollView.contentSize=contentView.frame.size;
Мое требование заключается в том, что, несмотря на ориентацию всех карты были бы выровнены один за другим с равными пробелами как с левого, так и с правого края.
Карты, имеющие разную высоту, равны по ширине.
До сих пор это то, что я попытался установить в центре по горизонтали. Я добавил этот фрагмент кода в viewDidLayoutSubviews
[contentView addConstraint:[NSLayoutConstraint constraintWithItem:firstCard
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:contentView
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:0.0]];
, где contentView относится к contentView в полном контроллере представления экрана и первая карта первая карта подтаблицы
Я также установить свойство
firstCard.translatesAutoresizingMaskIntoConstraints = NO;
При запуске в симуляторе я получаю катастрофические результаты. Вид странно смещен, а другие карты разбросаны повсюду.
Этого не происходит, когда я не устанавливаю ограничения. Они выглядят уродливыми, но они по-прежнему вертикально выровнены так, как они должны быть.
Я довольно новичок в разработке авто и разработке iOS.
Я действительно задаюсь вопросом, связаны ли какие-либо из этих проблем с тем фактом, что мой contentView является фиксированным фреймом?
Я сохраняю contentView с такой фиксированной рамкой, имея в виду не полноэкранный режим.
Куда я иду не так? Я бы очень признателен за любую помощь и советы.
Спасибо.
EDIT: -
Я также попытался выравнивая мой взгляд контента таким образом, что он остается центром в целях прокрутки. Вот код, который ...
(Это было также бедствие, вид контента, даже не появляется на экране)
[self.formScrollView addConstraint:[NSLayoutConstraint constraintWithItem:contentView
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self.formScrollView
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:0.0]];
}
[где formScrollView является свиток View]
Большое спасибо. Я буду учитывать это при добавлении карт в режим просмотра контента. Однако то, что я также хочу, это то, что мой контент-контент должен быть правильно центрирован. –
Также я хочу добавить, что я понял, как получить contentView в центре ... Как и как я использовал маску autoresizing для прокруткиview contentView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin; –
Приятно слышать, что .. – Saroj