簡體   English   中英

在狀態欄iOS 7上方添加UIView橫幅

[英]Add UIView banner above status bar iOS 7

我正在嘗試在收到應用內推送通知時在狀態欄上方添加橫幅。 從我一直在閱讀的內容看來,動態更改iOS 7中狀態欄樣式的唯一方法是將UIViewControllerBasedStatusBarAppearance設置為NO 這不僅非常煩人,我必須將所有不同的視圖控制器prefersStatusBarHidden[UIApplication sharedApplication].statusBarHidden ,但它也沒有給出我正在尋找的效果。

當橫幅從頂部滑動時,我仍然希望狀態欄提供的20個空間保留,但狀態欄內容將消失,直到橫幅向后滑動。 有沒有辦法做到這一點或在狀態欄上方添加子視圖或窗口?

基本上我想要這樣做:

Facebook Messenger推橫幅

要將視圖控制器置於狀態欄上方:

[[[[UIApplication sharedApplication] delegate] window] setWindowLevel:UIWindowLevelStatusBar+1];

要將視圖控制器置於狀態欄后面:

[[[[UIApplication sharedApplication] delegate] window] setWindowLevel:UIWindowLevelNormal];

創建一個新窗口並將標題視圖添加到該窗口。 當您需要顯示橫幅時,您可以設置您的yourwindow.hidden = NO; 您可以進一步添加動畫以顯示它並將其關閉yourwindow.hidden = YES;

這里的關鍵是設置yourwindow.windowLevel = UIWindowLevelStatusBar+1;

這將確保您的橫幅視圖和您的yourwindow始終顯示在狀態欄上方。

隨意提出有關上述任何問題的問題。

在狀態欄-Swift4上方添加UIView橫幅

func showBannerView(bannerView:UIView){
     let window = UIApplication.shared.keyWindow!
    window.addSubview(bannerView)
    window.windowLevel = UIWindowLevelStatusBar+1
}
func removeBannerView(bannerView:UIView){
    bannerView.removeFromSuperview()
    let window = UIApplication.shared.keyWindow!
    window.windowLevel = UIWindowLevelStatusBar - 1

} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM