Вопрос по iphone-sdk-3.0, statusbar, uinavigationbar, overlay, uiscrollview – UIScrollView сдвигается ниже навигации и строки состояния

3

У меня есть вид, который содержит scrollView. Когда вид отображается, изображение появляется в полноэкранном режиме (320x480), скрывая панель состояния и навигации. Когда я нажимаю на экраны - на экране появляется строка состояния и навигации. Но эта вещь сдвигает UIScrollView ниже панели навигации. Я хочу, чтобы статус и панель навигации отображались поверх моего вида прокрутки.

Как это происходит в приложении фотографий. При нажатии на изображение статус и панель навигации отображается поверх scrollView.

Ниже показано, как я позиционирую вид


//What I have done in viewDidLoad
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO];
self.wantsFullScreenLayout = YES;
scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
self.view = scrollView;

Ниже описано, что я делаю при обнаружении одного касания.


- (void)tapDetectingImageView:(TapDetectingImageView *)view             gotSingleTapAtPoint:(CGPoint)tapPoint {
    // single tap hide/unhide the status and nav bar
    NSLog(@"got a single tap");
    if (self.navigationController.navigationBarHidden == NO)
    {

        [self.navigationController setNavigationBarHidden:YES animated:NO];
        [[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
    }
    else
    {
        [[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES];
        [self.navigationController setNavigationBarHidden:NO animated:NO];
    }
}

Просто указатель для вас, ребята - Если я использую

[self.view addSubview:scrollView];
 Я не вижу этой проблемы. Но это испортило мой код альбомной ориентации.

Любой, кто может пролить свет на то, что я могу делать неправильно - будет отличной помощью!

Ваш Ответ

2   ответа
3

UIScrollView когда навигационные панели инструментов переключаются. Как вы указали в конце вашего вопроса, если вы поместите представление прокрутки в содержащийUIViewЭта проблема перестановки не возникает.

Чтобы устранить проблемы с ландшафтом, убедитесь, что выautoresizingMask как в представлении контейнера, так и в представлении прокрутки. Мне не нужно было добавлять дополнительную обработку для ландшафтного режима в моем проекте.

1

В моем коде обнаружения касаний еще я добавил строку ниже в последнем.

scrollView.contentOffset = CGPointMake(parentScrollView.contentOffset.x,0);

Не уверен, что это правильный подход. Но если кто-то может предложить лучший подход - более чем приветствуется!

что такое parentScrollView?

Похожие вопросы