iPad autoresizingMask создает нижнее поле - PullRequest
0 голосов
/ 08 января 2011
LiveStreamTable=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 768, 960)];
LiveStreamTable.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:LiveStreamTable];

Этот код находится в viewDidLoad.Между viewDidLoad и viewWillAppear размер таблицы увеличивается до 916, оставляя 44 пустых пикселя внизу (это в портретном режиме).Я знаю, что это между печатью отладочной информации.

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

У меня также возникает проблема, когда, если я в первую очередь перехожу к экрану в альбомной ориентации, он становится неправильным.Это заканчивается слишком широким и слишком коротким.Я предполагаю, что это связано.

Как правильно использовать autoresizingMask, чтобы моя таблица занимала весь вид (кроме панелей состояния и навигации) как в книжной, так и в альбомной ориентации?

1 Ответ

2 голосов
/ 10 июля 2011

Ваша маска авторазмера правильна, но способ инициализации фрейма неверен.

Подумайте, открывается ли этот вид в альбомной ориентации, фрейм (0, 0, 768, 960) дает неправильный фрейм.

вместо

LiveStreamTable=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 768, 960)];

вы должны попробовать

LiveStreamTable=[[UITableView alloc]initWithFrame:self.view.bounds];

Это инициализирует кадр в соответствии с вашим текущим представлением ViewController.

Я надеюсь, что эта помощь.

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