Есть ли способ удалить нижнюю границу, которую iOS7 автоматически отобразит под навигационной панелью?Удалить нижнюю границу панели навигации iOS7
ответ
Если я вас правильно понял попробовать
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
на основе muffed2k ответа + программирования Томас комментарий, это то, что я использую, чтобы показать UINavigationBar без фонового изображения (iOS5.1/6.0) и без нижней границы (ios7.0):
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 6)
{
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
}else
{
[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
}
Это не работает на iOS7 с навигацией полупрозрачный или нет ...
пасту от компании Apple Документа Тион;
Описание Теневое изображение, которое будет использоваться для панели навигации. Значение по умолчанию равно nil, что соответствует теневому изображению по умолчанию. Когда не-nil, это свойство представляет собой настраиваемое изображение теней для отображения вместо значения по умолчанию. Для отображения пользовательского теневого изображения пользовательское фоновое изображение также должно быть установлено с помощью метода setBackgroundImage: forBarMetrics:. Если используется фоновое изображение по умолчанию, то теневое изображение по умолчанию будет использоваться независимо от значения этого свойства.
Итак, в основном вам необходимо реализовать этот setBackgroundImage. Дополнительное примечание, на iOS7 вы больше не будете использовать внешний вид, но вы измените панель навигации в контексте viewController, где вы сейчас находитесь.
То есть:
[self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]];
[self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc]init] forBarMetrics:UIBarMetricsDefault];
В моем случае я ставлю это в viewDidLoad (нестандартное поведение может быть добавлено для каждого UIViewController в UINavigationViewController).
Благодарим вас за обновленный ответ и ссылку на документацию. – JVillella
В моем случае это ответ, который сработал, а не первый. Спасибо за код и документацию. –
Использование внешнего вида, похоже, отлично работает на 7+, но вам нужно будет установить как «shadowImage», так и «backgroundShadowImage» – bloudermilk
Если вы ориентируетесь IOS 7 и не установки фонового изображения, то это будет работать:
CGFloat navigationBarWidth = self.navigationController.navigationBar.frame.size.width;
CGFloat navigationBarHeight = self.navigationController.navigationBar.frame.size.height;
CGFloat statusBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height;
UIGraphicsBeginImageContextWithOptions(CGSizeMake(navigationBarWidth, navigationBarHeight + statusBarHeight), NO, 0.0);
UIImage *blank = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[[UINavigationBar appearance] setBackgroundImage:blank forBarMetrics:UIBarMetricsDefault];
//the following line takes away the border but only works if a background image is set (above)
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
Я получил идею от @ muffe2k Ответим и this SO post.
Любая обратная связь при голосовании? – kraftydevil
Если вы используете Swift и вы столкнетесь с этим вопросом, попробуйте это в главном ViewController:
override func viewDidLoad() {
super.viewDidLoad()
/// ...
navigationController?.navigationBar.shadowImage = UIImage();
navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
//...
}
на основе @ wolffan отвечают выше
Я знаю, что есть принят ответ на этот вопрос уже, но другой способ сделать это - установить clipToBounds в true.
Вот одна строка кода, чтобы сделать это в быстрой
self.navigationController?.navigationBar.clipsToBounds = true
работал для меня как шарм.
он может разорвать фон состояния, вспомните вас –
@ user5209290 верен. Моя строка состояния больше не смешивается с навигационной панелью при отсечении до границ панели навигации. – Daniel
Для меня follwing работал над прошивкой 7 до 9+ когда translucent
установлен в false
UINavigationBar.appearance().transluscent = false
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarMetrics:.Default)
Я думаю, что вам не хватает периода для .Default – noobular
для Objective C
self.navigationController.navigationBar.clipsToBounds = YES;
работает как шарм: Swift 3.x версия
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
- 1. Удалить нижнюю границу
- 2. Как удалить границу UITextField в панели навигации
- 3. Как удалить последнюю границу на панели навигации?
- 4. Как удалить нижнюю границу заголовка панели группового окна?
- 5. Удалить границу UISearchBar в iOS7
- 6. UiStepper IOS7 Удалить границу можно?
- 7. Sencha - добавить нижнюю границу заголовка к панели
- 8. Удалить место перед левой кнопкой на панели навигации в IOS7?
- 9. Удалить нижнюю границу от родительского div
- 10. Wordpress - CSS Удалить нижнюю границу Navbar
- 11. Как удалить нижнюю границу коробки с CSS
- 12. Как удалить нижнюю границу последней строки DataGrid
- 13. Добавление горизонтальной панели навигации в нижнюю панель навигации
- 14. SearchBar в панели навигации в iOS7
- 15. Настройка заголовка панели навигации в iOS7?
- 16. iOS7 QLPreviewController изменение цвета панели навигации?
- 17. Показать панель поиска в панели навигации IOS7
- 18. iOS7 Цвет текста на панели навигации
- 19. Изменить нижнюю границу заголовка
- 20. Как увеличить нижнюю границу для панели навигации в бутстрапе с помощью CSS
- 21. Как удалить верхнюю границу навигационной панели
- 22. Как удалить нижнюю строку панели действий
- 23. Удалить нижнюю строку из панели табуляции
- 24. Удалить текст с панели навигации на панели навигации iOS.
- 25. Удалить границу из последнего элемента списка навигации
- 26. Удалить элемент из панели навигации
- 27. Добавить нижнюю границу в DIV
- 28. Обнаружить нижнюю границу рамки - Cocos2d
- 29. Нужно скрыть нижнюю панель в приложении на панели навигации.
- 30. Как удалить границу вокруг панели инструментов?
Да! Спасибо. – Gnamm
Возможно, стоит отметить, что (для iOS 7), чтобы это сработало, вы также должны сделать [[UINavigationBar appearance] setBackgroundImage: [[UIImage alloc] init] forBarMetrics: UIBarMetricsDefault]. –
Это не работает для меня на iOS 7. Я установил для полупрозрачного свойства navbar значение false. Это может быть проблема? –