Имам настройка на viewcontroller с помощта на storyboard + autolayout, но имам някои проблеми (пре) оразмеряването правилно на подвида за 3.5 "/ 4" дисплей.
Това е, което имам настройка в таблото за снимки:
Scrollview правилно запазва 20px пространството си до дъното в съответствие с ограничението. Подвидовете обаче (червен), която добавям в цикъла по-долу към scrollview трябва да има същата височина като scrollview, но те не "t :(
int pageCount= 3;
self.scrollView.delegate= self;
self.scrollView.pagingEnabled= YES;
self.scrollView.scrollEnabled= YES;
self.scrollView.showsHorizontalScrollIndicator= NO;
self.scrollView.showsVerticalScrollIndicator= NO;
self.scrollView.contentSize= CGSizeMake(self.scrollView.bounds.size.width * pageCount, self.scrollView.bounds.size.height);
NSLog(@"viewcontroller frame: %@ (bounds: %@)", NSStringFromCGRect(self.view.frame), NSStringFromCGRect(self.view.bounds));
NSLog(@"scrollview frame: %@ (bounds: %@)", NSStringFromCGRect(self.scrollView.frame), NSStringFromCGRect(self.scrollView.bounds));
NSLog(@"scrollview content size%@", NSStringFromCGSize(self.scrollView.contentSize));
for (int i= 0; i < pageCount; i++)
{
UIView* neutralContainer= [[UIView alloc] initWithFrame:CGRectMake(0.0 + i * self.scrollView.frame.size.width, 0.0, self.scrollView.frame.size.width, self.scrollView.frame.size.height)];
neutralContainer.backgroundColor= [UIColor redColor];
NSLog(@"containerview frame: %@ (bounds: %@)", NSStringFromCGRect(neutralContainer.frame), NSStringFromCGRect(neutralContainer.bounds));
[self.scrollView addSubview:neutralContainer];
Както изглежда, scrollview рамката, която отпечатвам в конзолата (вижте екранната снимка), остава същата, без значение дали стартирам 4 "или 3.5" симулатора. Бих очаквал да получа различни стойности.
Може ли някой да ми обясни какво правя неправилно?
Отговори:
0 за отговор № 1Опитайте да зададете размера на съдържанието си в scrollview.
self.scrollView.contentSize.Height = self.scrollView.frame.size.height;
Подразделението ви се добавя динамично и не трябва да отговаря на ограниченията на родителя му.
0 за отговор № 2
Отивам през тази публикация Storyboard UIScrollView contentSize? ми помогна да реша проблема:
Вместо да инициализирате подвидовете за UIScrollview
в viewDidLoad
метод, преместих кода на viewDidLayoutSubviews
и voila, размерът на съдържанието е правилен както за 3,5 ", така и за 4", а подвидовете са разположени правилно в моето превъртане.