Автоматический макет и sizeForChildContentContainer

У меня есть контроллер представления контейнера содержимого, который добавляет дочерний контроллер представления, а затем устанавливает некоторые ограничения Auto Layout для определения размера дочернего представления. Дочернее представление не полностью заполняет представление контейнера. Мой дочерний контроллер представления реализует viewWillTransitionToSize:withTransitionCoordinator: и размещает свое содержимое на основе переданного размера.

Я знаю, что мне нужно переопределить sizeForChildContent:withParentContainerSize: в контроллере представления контейнера, чтобы дочерний элемент получал правильный размер в своем методе viewWillTransitionToSize:. У меня вопрос: как правильно рассчитать возвращаемый размер (т.е. размер дочернего представления после применения ограничений)? Я мог бы посчитать размер дочернего элемента самостоятельно, но это противоречит цели определения размера дочернего представления с помощью Auto Layout.


person Mark_Ss    schedule 26.11.2014    source источник
comment
Вы поняли это?   -  person fruitcoder    schedule 15.12.2016


Ответы (1)


Реализовать preferredContentSize в дочернем viewController

- (CGSize)preferredContentSize {
  return CGSizeMake(<width>, <height>);
}

Затем родительский viewController может запросить у дочернего элемента его предпочтительный размер, внести необходимые корректировки и вернуть скорректированный размер.

person Chris Ellens    schedule 10.06.2015