status bar becomes gradient after closing video in landscape mode

北城余情 提交于 2019-12-24 04:16:15

问题


Below is happening with iOS 6.

I am playing video which can be played in potrait or landscape mode. Once video's Done button is pressed I am making screen to potrait mode programmatically.

The problem is when I open app, I have black status bar.

When I play video as potrait only, I still see black status bar as shown below.

Now when I play video and shift rotation after after playback is done and click Done button, I make app in potrait mode. BUT now my status bar is changed to light black (maybe BlackTransculent).

Also if you see, I see something black left to the time.

Any idea what is going wrong? This is literally making me crazy.


Edit 1

Below is the code I am using.

In viewcontroller.m

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

- (BOOL)shouldAutorotate
{
    return NO;
}

In CustomNavigation.m

- (BOOL)shouldAutorotate
{
    return [self.visibleViewController shouldAutorotate];
}


- (NSUInteger)supportedInterfaceOrientations
{
    if (![[self.viewControllers lastObject] isKindOfClass:NSClassFromString(@"ViewController")])
    {
        return UIInterfaceOrientationMaskAllButUpsideDown;
    }
    else
    {
        return [self.topViewController supportedInterfaceOrientations];
    }
}

Note:

I am not using below code anymore.

[[UIDevice currentDevice] performSelector:NSSelectorFromString(@"setOrientation:") withObject:(id)UIInterfaceOrientationPortrait];

still this problem persist...

The problem is when I am in landscape mode and click done button.


回答1:


It's weird...

After further investigation, I noticed that when video is played in landscape mode, status bar is changed to transculent.

What I tried programmatically is after video is done with playing, set status bar back to black [[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackOpaque];, BUT that was not also working.

So what I did is when user hit back button, I set it to black and there it was working. Not sure what is the problem.

- (IBAction)takeMeBackAction:(id)sender {
    //    [self takeMeDownAction:nil];

    if (IS_DEVICE_RUNNING_IOS_6_OR_BELOW()) {
        [[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackOpaque];
    }
}


来源:https://stackoverflow.com/questions/21364163/status-bar-becomes-gradient-after-closing-video-in-landscape-mode

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!