UIScreen-applicationFrame - это полноэкранный прямоугольник с удаленной строкой состояния (часами). Поскольку ваш вид прокрутки находится внутри области просмотра контроллера навигации, вам необходимо использовать координаты в координатном пространстве внутреннего вида.
Даже использование UIScreen-bounds не дает вам совершенно правильного результата, поскольку этот прямоугольник будет иметь полный размер экрана, включая пространство, которое должно занимать панели навигации. Используя -bounds, вы обнаружите, что ваш UIScrollView на самом деле работает на 64 пикселя от нижней части экрана.
Предполагая, что вы создаете представление прокрутки в методе -loadView UINavigationController, примерно так должно работать:
- (void)loadView {
[super loadView];
UIScrollView *sv = [[UIScrollView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:sv];
[sv release];
}