Arhn - архитектура программирования

Удалить границу 1px под UINavigationBar - не работает

@IBOutlet var navBar: UINavigationBar!

self.navBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
self.navBar.shadowImage = UIImage()

Приведенный выше код работает, если контроллер представления встроен в контроллер навигации и использует self.navigationController?.navigationBar.setBack... и т. д., но он не работает при использовании IBOutlet (мой пример не встроен в контроллер навигации). Панель навигации не прозрачная.

Любые идеи?


Ответы:


1

Поместите это в свой контроллер просмотра (не в uinavigationbar).

[[UINavigationBar appearance] setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setShadowImage:[UIImage new]];
03.12.2014
  • Я пробовал это, и это не сработало. Я также пытался поместить его в AppDelegate, но это тоже не помогло, я думаю, что ваш ответ работает только для новых экземпляров, а не для уже созданных. 03.12.2014
  • @ jskidd3 Это должно работать, и я только что проверил, что это должно работать и для баров, которые не находятся в UINavigationController. Попробуйте также установить translucent=false 04.12.2014
  • Вы поместили этот код в метод viewDidLoad вашего контроллера представления? 05.12.2014
  • Я могу убедиться, что это также работает, по крайней мере, для BarStyle=UIBarStyleBlack. 11.12.2014

  • 2

    Где именно вы вызываете настройки внешнего вида для NavBar? Когда я пытаюсь сделать следующее:

    [self.myNC.navigationBar setShadowImage:[UIImage new]];
    [self.myNC.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
    

    У меня есть желаемый эффект. Не могли бы вы предоставить нам немного больше контекста?

    05.12.2014
  • Я вызываю это в viewDidLoad контроллера представления, в котором присутствует navigationBar. Не могли бы вы вместо этого написать свой ответ на Swift, пожалуйста? Кажется, я не могу найти метод setShadowImage, только свойство shadowImage. 05.12.2014

  • 3

    Если вы используете панель навигации без контроллера представления навигации, вы можете попробовать установить navigationBar.clipsToBounds = YES. У меня есть отдельный UIToolbar, и этот подход работает сейчас.

    05.12.2014

    4

    Это прекрасно работает с IBOutlet для панели навигации.

    @IBOutlet weak var navigationBar: UINavigationBar!
    
    override func viewDidLoad() {
        super.viewDidLoad()
    
        navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
        navigationBar.shadowImage = UIImage()
    
    }
    

    Дважды проверьте, что ваша панель навигации настроена как ссылка на контроллер представления.

    IBOutlet

    Вот пример проекта, показывающий, что он работает должным образом: http://bjtitus.s3.amazonaws.com/NavBarBorderTest.zip

    10.12.2014
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..