[英]Add UIView banner above status bar iOS 7
我正在嘗試在收到應用內推送通知時在狀態欄上方添加橫幅。 從我一直在閱讀的內容看來,動態更改iOS 7中狀態欄樣式的唯一方法是將UIViewControllerBasedStatusBarAppearance
設置為NO
。 這不僅非常煩人,我必須將所有不同的視圖控制器prefersStatusBarHidden
為[UIApplication sharedApplication].statusBarHidden
,但它也沒有給出我正在尋找的效果。
當橫幅從頂部滑動時,我仍然希望狀態欄提供的20個空間保留,但狀態欄內容將消失,直到橫幅向后滑動。 有沒有辦法做到這一點或在狀態欄上方添加子視圖或窗口?
基本上我想要這樣做:
要將視圖控制器置於狀態欄上方:
[[[[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.