2013-12-04 3 views
2

Код: NSLog(@"[self view] = %@", [self view]);Что делает «autoresize = W + H;» означает в NSLog выходе объекта UIView

Выход: [self view] = <UIView: 0xca2bfc0; frame = (0 44; 320 588); autoresize = W+H; autoresizesSubviews = NO; layer = <CALayer: 0xca1d7e0>>

Я попытался [[self view] setFrame:CGRectMake(0, 64, 320, 568 + 64)];, но каркас Вид по-прежнему кадр = (0 44; 320 588). Поэтому я NSLog [self view], чтобы увидеть, есть ли там ограничения авторазрешения. Но не знаю, что означает обозначение выше.

+0

ширины и высоты –

+0

до @RobertLevy это означает, что (1) есть некоторые ограничения AUTORESIZE, добавленные в [зрения самостоятельной] или (2) есть некоторая авторезистентные ограничения, добавленные в супер-просмотр [self view]. И какие ограничения авторезистентности обозначают W и H? Гибкая ширина и гибкая высота? – Cong

ответ

3

Это лог-описание маски UIView -autoresizingMask. В основном, это то, как вы описываете, что должны делать объекты subviews при изменении размера супервизора. Это очень мощно.

Ваши текущие правила сообщают, что подпункт изменяет ширину и высоту при изменении размера супервизора и удерживает расстояние выше и ниже статического представления subview (в терминах системы координат наблюдения).

+0

Hi @amanhuipg Этот W + H делает вид под навигационной панелью на 20 точек. Это ненормальное поведение происходит даже тогда, когда я устанавливаю его только на W (это устанавливает '[[self view] setAutoresizingMask: UIViewAutoresizingFlexibleWidth];' in '- (void) init' метод контроллера вида, который содержит' [self view] ') , – Cong

3

Вы можете прочитать, что, как:

Эта точка зрения будет AUTORESIZE растягивая его ширину и высоту.

1

Это означает, что текущая маска автоматического изменения устанавливается в UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight

+0

Да, я тоже так думаю: D – Cong