Просто добавление подпрограммы UIView
от контроллера, создающего с помощью instantiateViewControllerWithIdentifier
текущее представление контроллеров и добавление ограничений для поддержки размера нового подсмотра для покрытия всей области. Код ниже работал в iOS 7. iOS 8 позволяет подобрать небольшую часть верхнего левого угла. iOS 7 делает то, что я ожидаю, а именно размер подзаголовка по всему размеру родительского представления. Я бы приложил изображение, но у меня его нет. Установка translatesAutoresizingMaskIntoConstraints
в YES устраняет проблему, но тогда представление не соблюдает ограничения и изменяет размер при изменении ориентации или изменении размера.Ограничения для subview, не работающих в iOS 8, XCode 6 (6A313). Работы iOS 7
spotCheckStoresViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"visitStoresViewController"];
spotCheckStoresViewController.mainViewController = self;
spotCheckStoresViewController.dataMode = kDataModeViews;
spotCheckStoresViewController.lastRow = [self getViewsLastRow];
spotCheckStoresViewController.view.tag = -200;
currentView = spotCheckStoresViewController.view;
[self addChildViewController:spotCheckStoresViewController];
[self.view insertSubview:currentView belowSubview:_menuViewController.view];
currentView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:currentView attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1.0 constant:0.0]];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:currentView attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTrailing multiplier:1.0 constant:0.0]];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:currentView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1.0 constant:0.0]];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:currentView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0.0]];
//[self.view updateConstraints];
//[self.view layoutIfNeeded];
Я попытался установить рамку подзапроса. Любые идеи, которые могли бы измениться в iOS 8, чтобы изменить поведение ограничений, используемых таким образом?
Я исправил это для себя, добавив еще один подраздел UIView к контроллерам основной UIView в ИБ, устанавливая ограничения на то, чтобы прилипнуть к ведущей, задней, верхней и нижней, а затем добавить свой первоначальный вид вложенного к этому ребенку UIView. Кажется, чтобы выполнить эту работу. – bavelasq
в iOS 8 добавлено несколько новых руководств по макетам '' 'leftLayoutGuide''' и' '' rightLayoutGuide'''. вы можете попробовать установить свои ограничения для них, но помните, что это не доступно до iOS 8. –
Это не относится к вашему вопросу, но вы забываете называть 'didMoveToParentViewController:'. – matt