2009-09-22 4 views
2

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

У кого-нибудь есть решение?

Tnx заранее.

ответ

1

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

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

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

+0

Это новая проблема, потому что я не сталкивался с этой проблемой раньше, хотя я использовал тот же метод. – rkb

+0

Это может быть для вас новая проблема, но это всегда было так. Возможно, это первый раз, когда вы создали представление без строки состояния, непреднамеренно или нет. – mikestew

2

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

CGRect frame = myController.view.frame; 
frame.origin.y = 20.0; 
myController.view.frame = frame; 
4

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

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

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

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

+0

+1, я только начинаю с iPhone и Objective-C dev, следуя учебнику, содержащему этот пример. Я немного почесал голову, но это сработало отлично! –

0

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