2016-10-07 3 views
0

Я использую Xcode 8, iOS 10. У меня есть ScrollView из Storyboard. Мой потокiOS ScrollView setContentSize не работает

  • viewDidLoad метод имеет Restcall, который извлекает информацию с сервера.
  • On Return, я проанализировал Response и основал на том, что создаю UIElements в методе, а затем добавлю в один ParentView.
  • Наконец, ParentView будет добавлен в ScrollView.
[self.scrollView addSubview:parentView]; 
self.scrollView.frame = CGRectMake(0, 0, 320, parentView.frame.size.height); 
[self.scrollView setContentSize:CGSizeMake(320, parentView.frame.size.height)]; 

При печати высоту Scrollview после этого кода, он показывает "680", который больше, чем My View Height. Я пробовал метод «viewDidLayoutSubviews», но все же ScrollView не работает. Кто-нибудь знает, почему это не прокрутка?

+0

[см. Ссылки, представленные здесь] (https://forums.developer.apple.com/thread/63858). Возможно, это вопрос настройки макета. – vaibhav

+0

Используете ли вы автоматический макет? – user3182143

ответ

3

Проблема в коде является то, что вы устанавливаете Scrollview высоту и contentSize высоту от родительского вида.

Вы должны сделать следующий: -

[self.scrollView addSubview:parentView]; 

self.scrollView.frame = CGRectMake(0, 0, 320, [UIScreen mainScreen].bounds.size.height); 

[self.scrollView setContentSize:CGSizeMake(320, parentView.frame.size.height)]; 

Надеется, что это будет полезно

+0

Благодарю Тебе, что ты спасешь мой день. – nadim

+0

@nadim Не беспокойтесь, Happy Coding .. –

1

Попробуйте отключить autolayout под "Interface Builder документа" Disable: "Использование Autolayout"

Он работает в моем случае.

3

Вы устанавливаете неправильный кадр UIScrollView. поэтому размер вашего контента не работает.

Попробуйте это,

[self.scrollView addSubview:parentView]; 
self.scrollView.frame = CGRectMake(0, 0, 320, [UIScreen mainScreen].bounds.size.height); 
[self.scrollView setContentSize:CGSizeMake(320, parentView.frame.size.height)]; 
+0

Большое вам спасибо за ваш ответ. – nadim

+0

в любое время ... –

0

попытка установить layoutIfNeeded перед тем рамный комплект Scrollview в.

У меня такая же ситуация, как и вы.

-(void)viewDidLoad{ 
    [self.view layoutIfNeeded]; 
    self.myCustomScrollView.frame = self.contentView.bounds; 
} 

AutoLayout, похоже, отличается от положения кадра в Xcode8.

просто не знаю почему, но это работает для меня.

Смежные вопросы