iPhone : HOWTO move status bar with pan gesture

后端 未结 4 1473
不思量自难忘°
不思量自难忘° 2020-12-28 09:21

Like Instagram - EXPLORE Tab, when I scroll the content, the status bar moves as well.

Always called FullScreenScroll, like here, when the user scro

相关标签:
4条回答
  • 2020-12-28 10:01

    And swift:

    if let statusBarWindow:UIWindow = UIApplication.shared.value(forKey: "statusBarWindow") as? UIWindow {
       statusBarWindow.frame.origin.y = -5
    }
    
    0 讨论(0)
  • 2020-12-28 10:03

    This is the best solution you can find to get status bar window

    UIWindow *statusBarWindow = (UIWindow *)[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"];
    

    Then change the frame

    0 讨论(0)
  • 2020-12-28 10:05

    You can set the status bar hidden with an animation by calling:

    [[UIApplication sharedApplication] setStatusBarHidden:BOOL withAnimation:UIStatusBarAnimation]

    If you'd like to move the status bar pixel by pixel, you'll need to take a more creative approach. I believe that the way Instagram does this is by taking an image representation of the status bar (like a screenshot of the status bar), hiding the actual status bar, and then moving the image representation up and down as the user scrolls.

    0 讨论(0)
  • 2020-12-28 10:10

    I don't know why downvote my question without comments or reasons. Though, I found a solution to achieve moving status bar.

    Thanks to this question and answer which I upvoted for, I can change the statusBar's frame while scrolling like below:

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        NSArray *windows = [[UIApplication sharedApplication] FEX_windows];
        for (UIWindow *window in windows) {
            if ([window isKindOfClass:NSClassFromString(@"UIStatusBarWindow")]) {
                CGRect frame = window.frame;
                frame.origin.y -= 5;
                window.frame = frame;
            }
        }
    }
    
    0 讨论(0)
提交回复
热议问题