3

J'ai vue qui contient un scrollView. Lorsque la vue apparaît, l'image apparaît en plein écran (320x480) masquant l'état et la barre de navigation. Quand j'appuie sur les écrans - l'état et la barre de navigation apparaissent sur l'écran. Mais cette chose déplace l'UIScrollView sous la barre de navigation. Je veux que le statut et la barre de navigation apparaissent sur ma vue de défilement.UIScrollView passe en dessous de la barre de navigation et d'état

Comme il se passe dans l'application de photos. En tapant sur l'image, le statut et la barre de navigation s'affichent sur le scrollView.

Voici comment je suis le positionnement de la vue


//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; 

ci-dessous est ce que je fais sur la détection d'un seul robinet


- (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]; 
    } 
} 

Juste un pointeur pour vous les gars - Si je

[self.view addSubview:scrollView];
I Ne voyez pas ce problème. Mais cela gâcher mon code d'orientation paysage.

Toute personne qui peut faire la lumière sur ce que je pourrais faire de mal - serait d'une grande aide!

Répondre

1

J'ai trouvé la solution moi-même. Dans mon autre code de détection de tap tap, j'ajoute la ligne ci-dessous dans le dernier.

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

Vous ne savez pas si c'est la bonne approche. Mais si quelqu'un peut suggérer une meilleure approche - plus que bienvenue!

+0

Qu'est-ce que parentScrollView? – Dejell

3

Il semble y avoir une manipulation spéciale à l'intérieur de UIScrollView lorsque les barres d'outils de navigation sont basculées. Comme vous l'avez souligné à la fin de votre question, si vous mettez la vue de défilement à l'intérieur d'un UIView contenant, ce problème de repositionnement ne se produit pas.

Pour résoudre les problèmes de paysage, assurez-vous que vous définissez autoresizingMask à la fois sur l'affichage du conteneur et sur l'affichage déroulant. Je n'ai pas eu à ajouter de manipulation supplémentaire pour le mode paysage dans mon projet.

Questions connexes