Я хочу, чтобы UINavigationBar в моем приложении был полностью прозрачным и совпадал с контроллером представления непосредственно под ним. Однако единственный код, который я смог найти, делает его полупрозрачным, но не прозрачным. Я знаю, что это можно сделать в iOS 7, потому что он используется в приложении заметок. У меня вопрос, какой код они использовали для этого?
cocoa-touch
uinavigationbar
transparency
translucency
Кори Гинзберг
источник
источник
self.edgesForExtendedLayout = UIRectEdgeNone;
Для Swift3 и Swift4
Для Swift2.2
Для Objective-C
источник
Автономное решение в категории Objective-C:
UINavigationController + TransparentNavigationController.h
UINavigationController + TransparentNavigationController.m
Теперь вы можете импортировать категорию в свой
UIViewController
и вызывать методы на своем контроллере навигации, например:И аналогичное решение в Swift :
источник
hideTransparentNavigationBar()
следует сбросить его обратно.viewDidHide
из родительского контроллера представления.Алан забыл одну строчку
Так что я:
источник
Отличный ответ @ Zorayr, пересмотренный на Swift 3:
источник
Swift 4.2 и iOS 12
Оказывается, все, что вам действительно нужно, это приведенный ниже код. Он отлично работает, когда вы его вставляете
viewDidLoad()
.источник
Используйте модуль UINavigationBar + Addition , затем просто вызовите:
источник
[(UIView *) [self.navigationController.navigationBar.subviews objectAtIndex: 0] setAlpha: 0.0f];
Эта одна строка, казалось, отлично работала для меня
источник