Я делаю пейджинговый вид scrollview. Он отлично работает, когда я даю ширину и высоту подшивки.UIScrollView делает динамическую высоту и ширину subviews contectview программно
позвольте мне показать вам код.
Изготовление Scrollview и contenview
[self.view addSubview:self.scrollView];
[self.scrollView addSubview:self.contectView];
Addding constraing для Scrollview и contenview
NSDictionary *views = @{@"scrollView" : self.scrollView , @"contectView" : self.contectView };
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[scrollView]|" options:0 metrics:0 views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[scrollView]|" options:0 metrics:0 views:views]];
[self.scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[contectView]|" options:0 metrics:0 views:views]];
[self.scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[contectView]|" options:0 metrics:0 views:views]];
Добавление подвид в contectview
for (int i=0; i<10; i++) {
UIView *productView =[self creatProductView];
[self.contectView addSubview:productView];
NSDictionary *views = @{@"productView" : productView , @"contectView" : self.contectView };
if (i==0) {
[self.contectView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[productView(==375)]" options:0 metrics:0 views:views]];
}
else{
views = @{@"productView" : productView , @"contectView" : self.contectView , @"lastView" : lastView , @"view" : self.view};
[self.contectView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[lastView][productView(==375)]" options:0 metrics:0 views:views]];
}
[self.contectView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[productView(==667)]" options:0 metrics:0 views:views]];
lastView = productView;
}
Constraint мне нужно изменить:
H:|[productView(==375)]
H:[lastView][productView(==375)]
V:|[productView(==667)]
Как выше я дал фиксированное ограничение. Я не могу дать относительно contectView, потому что он не имеет ограничений по ширине и высоте
Вы проверили вид Визуализируйте на тренажере с Xcode -> Выберите Debug> Просмотр Debugging> Show Alignment Прямоугольники. Runtime изображение может сделать его более понятным. – kaushal