[英]Overlay a view over whole screen, when using UITabBarController?
我想在UITabBarController設置中在整個屏幕上疊加HUD風格的透明圖形。 執行此操作的按鈕位於第一個選項卡的屏幕(FirstViewController)中,覆蓋圖也應覆蓋選項卡......這可能嗎?
您可以直接將新視圖附加到窗口。
[[[UIApplication sharedApplication] keyWindow] addSubview:myNewView];
Henrik P. Hessel的上述解決方案很好,但該解決方案存在一個問題。 elsurudo在答案下面的評論中已經提到了這個問題。
我對此解決方案的問題是疊加層是顛倒的,並且不會旋轉。
我遇到了同樣的問題,我嘗試了不同的東西,我得到了一個解決方案,以消除這個問題。
解決方案很簡單。 您可以將myNewView
添加到UITabBarController
的視圖中。
[self.tabBarController.view addSubview:myNewView];
希望,它對未來的訪客有用。
UIView *modal = [[UIView alloc] initWithFrame:self.view.window.frame];
[self.view.window addSubview:modal];
這可能與上面提到的[[UIApplication sharedApplication] keyWindow]
相同。 但我喜歡通過當前視圖引用它。
受rdelmar對另一個問題的回答的啟發,我建議將你的UITabBarController放在Container View中使用其他ViewController
。 然后將您的hud添加到ViewController
視圖中。
我真的很喜歡Chase Robert在這里寫的東西,所以我想提供Swift 3.版本:
if let window = view.window {
let subView = UIView(frame: window.frame)
window.addSubview(subView)
}
我也添加了條件,所以如果沒有窗戶你就不會崩潰。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.