iphone - How to stop the status bar covering the navigation bar in iOS6 -
iphone - How to stop the status bar covering the navigation bar in iOS6 -
this issue....
this happens when:
status bar faded out using button. rotate 180 deg landscape upside-down landscape. status bar faded in using button. - covers navigation bar.the button code toggle status bar visibility:
- (ibaction)togglebar:(id)sender { nslog(@"view frame : %@", nsstringfromcgrect(self.view.frame)); // toggle status bar visiblity bool isstatusbarhidden = [[uiapplication sharedapplication] isstatusbarhidden]; [[uiapplication sharedapplication] setstatusbarhidden:!isstatusbarhidden withanimation:uistatusbaranimationfade]; } the view reports frame 480 x 288.
the issue fixable on ios 5 using hacky workaround, stopping rotation filling space.
- (bool)shouldautorotatetointerfaceorientation:(uiinterfaceorientation)interfaceorientation { if ([[uiapplication sharedapplication] isstatusbarhidden]) { float oldalpha = self.navigationcontroller.navigationbar.alpha; self.navigationcontroller.navigationbar.alpha = 0.01; [[uiapplication sharedapplication] setstatusbarhidden:no withanimation:uistatusbaranimationnone]; double delayinseconds = 0.0; dispatch_time_t poptime = dispatch_time(dispatch_time_now, delayinseconds * nsec_per_sec); dispatch_after(poptime, dispatch_get_main_queue(), ^(void){ self.navigationcontroller.navigationbar.alpha = oldalpha; [[uiapplication sharedapplication] setstatusbarhidden:yes withanimation:uistatusbaranimationnone]; }); } homecoming uiinterfaceorientationislandscape(interfaceorientation); } this dons't work on ios 6 because shouldautorotatetointerfaceorientation not called. however, using replacement: willrotatetointerfaceorientation dosn't work. ideas?
after status bar toggled, set self.view.frame again.
iphone ios cocoa-touch
Comments
Post a Comment