2017-05-12 4 views
1

Ich haben ein UIView und jetzt ist es Vollbild, aber es gibt status bar, navigation bar, tab bar etc schwimmt auf sich, wenn der Benutzer das Gerät tippt, ich mag verstecken und zeigen Sie alle diese Bars. Meine Frage ist vielleicht, kann ich nicht sicherstellen, wie viele Bars im Fenster sind, gibt es eine Möglichkeit, alle vorhandenen Bars durch den window Handler zu verstecken oder zu zeigen, nicht die Bar einzeln ausblenden.Xcode machen vollen Bildschirm ausgeblendet Statusleiste, Navigationsleiste und etc

Jetzt ist mein Code wie folgt:

@interface PdfViewController : UIViewController 
{ 
BOOL _bounceBack; 
BOOL _navigatioBarHidden; 
BOOL _statusBarHidden; 
IBOutlet UITapGestureRecognizer *_doubleTapRecognizer; 
IBOutlet UITapGestureRecognizer *_singleTapRecognizer; 
IBOutlet UINavigationBar *navigationBar; 
} 

- (IBAction)singleTap:(UITapGestureRecognizer *)sender { 
NSLOGD_METADATAONLY(); 
_navigatioBarHidden = (_navigatioBarHidden)? NO: YES; 
navigationBar.hidden = _navigatioBarHidden; 
_statusBarHidden = (_statusBarHidden)? NO : YES; 
[self setNeedsStatusBarAppearanceUpdate]; 
[sender requireGestureRecognizerToFail:_doubleTapRecognizer]; 
} 
+0

mit Objective-C – wangshaoping

+1

zeigen Sie Ihre versuchte Code, –

+0

Möchten Sie alle Balken auf 'singleTap' klicken klicken? – Lion

Antwort

0

Versuchen Sie, diese

Sie benötigen die prefersStatusBarHidden Methode in Ihrer View-Controller

- (BOOL)prefersStatusBarHidden 
{ 
    // If self.statusBarHidden is TRUE, return YES. If FALSE, return NO. 
    return (self.statusBarHidden) ? YES : NO; 
} 

Und dann, in der Schaltfläche Click-Methode zu implementieren : Oder ändern Sie mit Ihrem Wahlschalter

- (void)clickonView:(id)sender 
{ 
    self.statusBarHidden = !self.statusBarHidden 
    [self.navigationController setNavigationBarHidden:self.statusBarHidden animated:YES]; 

    // Update the status bar 
    [UIView animateWithDuration:0.25 animations:^{ 
     [self setNeedsStatusBarAppearanceUpdate]; 
    }]; 
} 
+0

Die Navigationsleiste funktioniert gut, aber die Statusleiste wird immer noch auf dem Bildschirm angezeigt, wenn Sie auf den Bildschirm tippen. – wangshaoping

+0

Sie müssen einige Einstellungen in Plist tun .... siehe Antwort bezogen auf prefersStatusbar – KKRocks

Verwandte Themen