2012-07-03 4 views
1

Каков правильный способ авторазвития или автообновления всех компонентов вида при появлении строки состояния вызова (изменение высоты строки состояния)?Правильный способ автообновления всех объектов вида

enter image description here

Я использую:

- (void) application:(UIApplication*)application 
          didChangeStatusBarFrame:(CGRect)oldStatusBarFrame { } 

, но в этом случае мне нужно установить вручную кадр всех элементов. Я думаю, что это не лучший способ.


Я попытался установить autosize в панели построителя интерфейса, но при изменении рамки состояния ничего не меняется. enter image description here

Есть ли правильный способ сделать это во всем моем представлении без рамки для каждого элемента во всех представлениях?

спасибо.

ответ

0

Использование - (void) application:(UIApplication*)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame не подходит для этого.

Решение будет зависеть от желаемого расположения. Если это достаточно просто, маска автосохранения будет работать нормально. Для более сложной компоновки вам может понадобиться подкласс UIView и использовать его в качестве контейнера для подсмотров. Затем вы можете переопределить layoutSubviews для выполнения правильной компоновки в зависимости от границ вида (с авторезистированием контейнера).

Для авторезистировки: напр. Если вы хотите, чтобы все метки были зафиксированы относительно нижней границы и имели фиксированную высоту: просто нажмите нижнее расстояние в диалоговом окне авторезизации и снимите стрелку высоты.

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

  • Нет связанных вопросов^_^