我正在嘗試嚮導航欄和狀態欄添加模糊效果。 我的問題是,模糊在導航欄上變得很好,但狀態欄不會模糊。iOS 8 - 將模糊應用於導航欄和狀態欄
我的問題是:如何擴展邊界以包含狀態欄?
我用下面的方法來創建模糊效果:
- (void) addBlurEffect {
CGRect bounds = self.navigationController.navigationBar.bounds;
UIVisualEffectView *visualEffectView = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]];
visualEffectView.frame = bounds;
visualEffectView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.navigationController.navigationBar addSubview:visualEffectView];
self.navigationController.navigationBar.backgroundColor = [UIColor clearColor];
[self.navigationController.navigationBar sendSubviewToBack:visualEffectView];
}
在我的plist,我查看了基於控制器的狀態欄外觀YES
在viewDidLoad中我打電話給方法:
- (void)configureView {
// style controls
self.addAirportButton.tintColor = [UIColor whiteColor];
// style background image
UIImageView *sidebarBackground = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"sidebarBackground"]];
self.tableView.backgroundView = sidebarBackground;
// style navigation bar
self.navigationController.navigationBar.barStyle = UIStatusBarStyleLightContent;
// this makes navigation bar transparent
[self.navigationController.navigationBar setBackgroundImage:[UIImage new]
forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [UIImage new];
self.navigationController.navigationBar.translucent = YES;
// style toolbar
self.navigationController.toolbar.translucent = YES;
self.dismissAdsButton.tintColor = [UIColor whiteColor];
沒有其他重要的事情在viewDidLoad中完成。 當我建立這個,這裏是視圖的樣子 - 它是一個嵌入在NavigationController中的tableViewController,並且我也使用了優秀的SWRevealViewController。
查看如何在狀態欄沒有模糊:
任何幫助將非常感激!
更新:
查看下面的答案。下面是實施的解決方案的截圖:
你有沒有打過電話這一切都源自viewWillAppear中,而不是viewDidLoad中當視圖即將出現的第一次? –
我試過了,沒有變化,不幸。 –