UIScrollView не прокручивается после обновления до iOS7 / xcode 5

У меня есть приложение, которое в xcode 4.5 и ios 6.1 отлично работало при прокрутке. Однако после загрузки xcode 5 и iOS 7 мои просмотры прокрутки больше не работают. ???

Вот мой .h файл:

#import  @interface GrillretterViewController : UIViewController @property (strong, nonatomic) IBOutlet UIScrollView *grillretterScroller; @property (assign) CGPoint rememberContentOffset; @end 

И вот мой файл .m:

 #import "GrillretterViewController.h" @interface GrillretterViewController () @end @implementation GrillretterViewController @synthesize grillretterScroller, rememberContentOffset; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; [grillretterScroller setScrollEnabled:YES]; // Do any additional setup after loading the view. } - (void) viewDidAppear:(BOOL)animated { [grillretterScroller setContentSize:CGSizeMake(300, 915)]; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:YES]; self.grillretterScroller.contentOffset = CGPointMake(0, 0); } - (void)viewWillDisappear:(BOOL)animated { self.rememberContentOffset = self.grillretterScroller.contentOffset; [super viewWillDisappear:animated]; } - (void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; self.grillretterScroller.contentOffset = CGPointMake(0, self.rememberContentOffset.y); } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end 

Пожалуйста помоги! Я застрял!

С наилучшими пожеланиями!

Я решил это, сняв флажок «Использовать автозапуск» в панели «Инспектор файлов» основного вида в представлении «Прокрутка».

введите описание изображения здесьвведите описание изображения здесь

Если вы хотите включить функцию «Автоспуск», попробуйте «Редактор -> Повторить проблемы автоаудита -> Добавить недостающие ограничения». Ключевым ограничением является «Bottom Space to: Superview», и в моем случае было -300, что дало 300 прокруток на бета-версии.

Как упоминалось пользователем2394787:

Выберите свой controller просмотра с прокруткой, затем перейдите к

 Editor -> Resolve AutoLayout Issues -> Add Missing Contraints in [your view controller]. 

Это заставит его работать.

Я попытался проголосовать за вышеупомянутый ответ, но у меня не хватило репутации.

Я просто решил это, перейдя в Редактор> Устранение проблем автозапуска> Добавить отсутствующие ограничения в View Controller

Надеюсь это поможет.

Я просто установил «Вертикальное пространство» в значение auto constant. Может быть, это поможет в некоторых случаях.

Нажмите «Вертикальное пространство»

и установите его в инспекторе атрибутов

отметьте, что Стандарт

Надеюсь, это поможет. Спасибо.

Я не уверен, что это сработает

 - (void) viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; [grillretterScroller setContentSize:CGSizeMake(self.view.bounds.size.width, 915)]; } 
 - (void)viewDidLayoutSubviews { [self performSelector:@selector(updateContentSize) withObject:nil afterDelay:0.25]; } -(void)updateContentSize{ UIView *viewLast = [viewContent viewWithTag:100]; scrollViewAd.contentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, CGRectGetMaxY(viewLast.frame)); } 

У меня не было фиксированной высоты, поэтому я установил содержимое прокрутки в коде в соответствии с моей меткой внутри scrollview

 CGSize scrollViewContentSize = CGSizeMake(320, myLabel.frame.size.height); [self.scrollView setContentSize:scrollViewContentSize]; 

При включенном автозапуске убедитесь, что между UIScrollView и его подвью используется вертикальный интервал (@ “V: | – [subview] – |”). Если ваш scrollView предназначен для горизонтальной прокрутки, примените горизонтальный интервал (@ “H: | – [subview] – |”).

У меня была такая же проблема после разработки приложения для iOS8, а затем тестирование на iOS7. Хотя я попытался установить определенные параметры в представлении прокрутки, например:

 [self.scrollView setScrollEnabled:YES]; [self.scrollView setContentSize:CGSizeMake(self.view.frame.size.width, 700)]; [self.scrollView setContentOffset:CGPointZero]; 

Решение, которое сработало для меня, заключалось в том, чтобы войти в файл раскадровки и убедиться, что у вас есть ограничения, установленные для всех видов в прокрутке. Размер содержимого представления прокрутки вычисляется ограничениями каждого поднабора в представлении прокрутки, поэтому в моем случае у меня были UIView и UITableView. После установки ограничений для UIView (верхний, верхний, конечный, высота) и UITableView (вертикальный интервал до UIView, ведущий, конечный, нижний), прокрутка отображает размер содержимого и начинает функционировать.

При выключении Auto Layout это работает, но это не идеальное решение для всех. Просто поиграйте со Storyboard и установите ограничения для всех подзонов в представлении прокрутки, чтобы установить вертикальную линию ограничений, начиная с верхней части прокрутки и снизу.

Interesting Posts
Давайте будем гением компьютера.