Как сделать панель навигации и строку состояния размытой (UIBlurEffect)? Когда я нажимаю на изображение для прокрутки вниз (Просмотр прокрутки) на другие снимки, этот снимок (в данном случае с белой машиной) просто теряется под панелью навигации, и необходимо, чтобы этот рисунок был виден под панель навигации с эффектом UIBlurEffect.Как сделать панель навигации и строку состояния размытой (UIBlurEffect)? iOS, Swift 3
Я попытался это, но не получилось:
func addBlurEffect() {
// Add blur view
let bounds = self.navigationController?.navigationBar.bounds as CGRect!
let visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .light))
visualEffectView.frame = bounds!
visualEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
self.navigationController?.navigationBar.addSubview(visualEffectView)
self.navigationController?.navigationBar.sendSubview(toBack: visualEffectView)
visualEffectView.isUserInteractionEnabled = false }
Во-первых, при прокрутке картина просто исчезает под панели навигации.
Во-вторых, Status Bar остается серым.
Bad UIBlurEffect for NavigationBar, and NO UIBlurEffect for StatusBar
Для того, чтобы в строке состояния не остаются серые, я пытался это сделать, но безрезультатно = (
bounds.offsetBy(dx: 0.0, dy: -20.0)
bounds.size.height = bounds.height + 20.0
Также в AppDelegate (он приложение, написанное на Objective-C) в didFinishLaunchingWithOptions, я пытался добавить все это остается тем же без каких-либо изменений:
[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc]init] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc]init]];
[[UINavigationBar appearance] setBackgroundColor:[UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.0f]];
[[UINavigationBar appearance] setTranslucent:YES];
Пожалуйста, помогите решить эту проблему, я возиться с ней в течение 3-х дней.
Извините за мой плохой английский.
Спасибо, работы помогли мне второй линии –
я не вижу названия или кнопки больше ... –
@RayKing У меня была такая же проблема. Я нашел решение здесь: http://stackoverflow.com/a/27316465 Просто добавьте: self.navigationController? .navigationBar.sendSubviewToBack (visualEffectView) после применения вашего эффекта. –