Видите белую полосу внизу экрана, программно добавляя вид в окно в iPhone? - PullRequest
2 голосов
/ 22 сентября 2009

Когда я разработал проект, основанный на представлении в XCode, My view работает нормально. Но когда я использую проект на основе окна, самостоятельно создаю представление и пытаюсь добавить его в качестве подпредставления к окну, в нижней части отображается белая полоса. Я никогда раньше не сталкивался с этой проблемой, но столкнулся с ней впервые.

Ответы [ 4 ]

4 голосов
/ 18 июня 2010

Вы всегда должны устанавливать размер просмотра, получая разрешение от UIScreen

UIView *controllersView = [myViewController view]; // get the view
[controllersView setFrame:[[UIScreen mainScreen]applicationFrame]]; // set the Framesize

Это автоматически устанавливает начало координат на x = 0 и y = 20. Имейте в виду, что вы должны использовать этот метод вместо того, чтобы вручную устанавливать начало координат у = 20, поскольку разрешение экрана может измениться, как это будет с новым iPhone 4.

Самое смешное, что даже в примере Apple HelloWorld для iPhone появилась ошибка в 20 пикселей без правильной настройки фрейма представлений.

2 голосов
/ 06 декабря 2009

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

CGRect frame = myController.view.frame;
frame.origin.y = 20.0;
myController.view.frame = frame;
1 голос
/ 22 сентября 2009

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

Экран iPhone имеет высоту 480px, а верхние 20px выделяются для строки состояния устройства (с индикатором уровня сигнала / WiFi, часами и т. Д.). Обычно размер представления будет соответствовать оставшимся 460 пикселям окна, и если вы разрабатываете приложение на основе представления, это нормально - этот шаблон приложения уже обеспечивает корневое представление 320x460, к которому добавляются все остальные подпредставления. *

Но так как вы добавляете в окно, которое охватывает все 480px экрана, я предполагаю, что ваш обзор всего на 20px слишком короткий. Попробуйте изменить высоту вида или установить его смещение по оси Y.

0 голосов
/ 10 июня 2011

Если вы используете конструктор интерфейса, вы можете нажать на представление, перейти к инспектору атрибутов и изменить статусную строку на none. Затем вам просто нужно отрегулировать высоту вида в инспекторе размера до 480.

...