2016-01-23 3 views
0

В UIViewController после того, как я позвонил self.view.frame.size.height = 99, как я могу вернуть исходную высоту представления (не сохраняя ее в переменной)?Получите оригинальную высоту обзора после ее изменения

Я думал о UIScreen.mainScreen().bounds.height, но это может быть неточным, если имеется панель навигации или какой-либо другой бар.

+0

Сохраните размер перед его заменой в другой переменной. Или вы также можете добавить свойство 'UIView', где вы сохраните его первоначальную высоту. – LinusGeffarth

+0

Аналогичный вопрос: http://stackoverflow.com/questions/4874288/use-key-value-observing-to-get-a-kvo-callback-on-a-uiviews-frame – Cristik

ответ

2

И как только вы изменили рамку представления, вы не можете получить предыдущее значение размера без дополнительной переменной.
Вы можете сохранить исходный кадр в переменной и использовать его позже.

+0

Почему бы не работать? Я тестировал, и он работает. – Code

+0

О, это быстро, я был смущен объектив-с. Отредактированный ответ – shpasta

0

Вы могли быть в состоянии получить вид обратно к исходному размеру, сделав его SuperView выполнить раскладку:

view.superview?.setNeedsLayout() 
view.superview?.layoutIfNeeded() 

Опять же, это может не сработать. Это зависит от того, что встраивает ваше мнение и как оно отображает его подпункты.

Как правило, это плохая идея установить фрейм корневого представления вашего контроллера представления. Это задача контейнера этого представления (окно или контроллер навигации или контроллер панели вкладок или что-то еще), чтобы установить рамку корневого представления вашего контроллера представления.

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