Высота UIScrollView регулируется от IB - PullRequest
2 голосов
/ 27 июня 2011

Я создал UIScrollView в Интерфейсном Разработчике, который занимает весь экран iPad (0, 0, 1024, 768)

Однако - при запуске приложения scrollView отображается только на экране в (0, 0, 1024, 440). 440 - приблизительная оценка, но она не расширяется до конца, чтобы заполнить экран, как следует.

Я делал то же самое в других приложениях и не сталкивался с этой проблемой. Я запустил «Очистить» в проекте, и я попытался удалить scrollView и воссоздать его, и все еще возникает та же проблема.

Я даже пытался программно усилить то, что есть в Интерфейсном Разработчике, но все равно это выглядело так же.

CGRect scrollFrame = CGRectMake(0, 0, 1024, 768);
[scrollView setFrame:scrollFrame];

Если вы знаете, почему это может произойти, ваша помощь будет принята с благодарностью.

* ОБНОВЛЕНИЕ * После еще одного исследования, что-то не так с контроллером представления. Та область внизу, где не отображается scrollView, полностью недоступна. Если я положу кнопку в нижней части экрана, я не могу нажать эту кнопку. Если он находится в верхней половине экрана, я могу просто щелкнуть по нему.

Кроме того, просмотр прокрутки на самом деле не начинается с 0, 0. Там, где он начинается, отсутствует верхняя часть содержимого. Таким образом, кажется, что scrollView имеет высоту 768, но начинается с -320, так что его верхняя часть выходит за верхнюю часть экрана, а нижняя часть заканчивается перед нижней частью экрана.

Ответы [ 2 ]

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

На самом деле, просмотр его в альбомном режиме - это просто удобство для просмотра того, что происходит, если вы поворачиваете устройство. Запуск в ландшафтном режиме может быть проблематичным. См. Этот вопрос и его ответы, чтобы получить отличную информацию.

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

Кажется, проблема заключалась в том, что приложение считало, что оно находится в портретном режиме, хотя у меня был .xib в альбомном режиме.

Исправлено с помощью этого небольшого трюка в viewDidLoad mainProjectViewController:

CGRect landFrame = self.view.frame;
landFrame.size.width = self.view.frame.size.height;
landFrame.size.height = self.view.frame.size.width;
self.view.frame = landFrame;
...