Nie ma nic złego w innych odpowiedziach. Udostępniam tylko wersję storyboardu do ustawiania czcionki.
1. Wybierz pasek nawigacji w kontrolerze nawigacji
2. Zmień czcionkę tytułu w Inspektorze atrybutów
(Prawdopodobnie będziesz musiał przełączyć Odcień paska dla paska nawigacji, zanim Xcode podniesie nową czcionkę)
Uwagi (zastrzeżenia)
Zweryfikowano, że to działa w Xcode 7.1.1+. ( Zobacz przykłady poniżej )
- Musisz przełączyć odcień paska nawigacyjnego, zanim czcionka zacznie obowiązywać (wydaje się, że jest to błąd w Xcode; możesz przełączyć go z powrotem na domyślny, a czcionka pozostanie)
- Jeśli wybierzesz czcionkę systemową ~ Upewnij się, że rozmiar nie jest równy 0,0 (w przeciwnym razie nowa czcionka zostanie zignorowana)
- Wygląda na to, że działa to bez problemu, gdy w hierarchii widoków znajduje się tylko jeden pasek nawigacyjny. Wygląda na to, że dodatkowe paski nawigacyjne w tym samym stosie są ignorowane. (Zwróć uwagę, że jeśli pokażesz navBar głównego kontrolera nawigacji, wszystkie inne niestandardowe ustawienia navBar są ignorowane).
Gotchas (deux)
Niektóre z nich są powtarzane, co oznacza, że najprawdopodobniej warto na nie zwrócić uwagę.
- Czasami plik XML scenorysu ulega uszkodzeniu. Wymaga to przejrzenia struktury w trybie Storyboard jako kodu źródłowego (kliknij prawym przyciskiem myszy plik serii ujęć> Otwórz jako ...)
- W niektórych przypadkach tag navigationItem skojarzony z atrybutem środowiska wykonawczego zdefiniowanym przez użytkownika był ustawiany jako element potomny XML znacznika widoku zamiast znacznika kontrolera widoku. Jeśli tak, wyjmij go spomiędzy tagów, aby zapewnić prawidłowe działanie.
- Przełącz Odcień paska NavBar, aby upewnić się, że używana jest niestandardowa czcionka.
- Sprawdź parametr rozmiaru czcionki, chyba że używasz dynamicznego stylu czcionki
- Hierarchia widoku zastąpi ustawienia. Wydaje się, że jedna czcionka na stos jest możliwa.
Wynik
Próbki
Obsługa czcionek niestandardowych
Uwaga ~ Ładna lista kontrolna znajduje się na stronie Code With Chris i możesz zobaczyć przykładowy projekt do pobrania.
Jeśli masz własną czcionkę i chcesz jej użyć w swojej serii ujęć, istnieje przyzwoity zestaw odpowiedzi na następujące pytanie SO . Jedna odpowiedź określa te kroki.
- Zdobądź niestandardowy plik czcionki (.ttf, .ttc)
- Zaimportuj pliki czcionek do projektu Xcode
- W app-info.plist dodaj klucz o nazwie Fonts dostarczony przez aplikację Jest to typ tablicy, dodaj wszystkie nazwy plików czcionek do tablicy, uwaga: łącznie z rozszerzeniem pliku.
- W serii ujęć na pasku nawigacyjnym przejdź do Inspektora atrybutów, kliknij prawym przyciskiem myszy w obszarze wyboru czcionki.W panelu podręcznym wybierz opcję Czcionka do niestandardowej i wybierz nazwę czcionki Family of you osadzonej.
Obejście niestandardowych czcionek
Wygląda więc na to, że Xcode może obsługiwać niestandardowe czcionki w UINavigationItem, ale ta funkcja po prostu nie aktualizuje się prawidłowo (wybrana czcionka jest ignorowana).
Aby obejść ten problem:
Jednym ze sposobów jest naprawienie korzystania ze scenorysu i dodania wiersza kodu: Najpierw dodaj UIView (UIButton, UILabel lub inną podklasę UIView) do kontrolera widoku (nie elementu nawigacji ... Xcode obecnie nie pozwala na to) że). Po dodaniu kontrolki możesz zmodyfikować czcionkę w serii ujęć i dodać odniesienie jako punkt wyjścia do kontrolera widoku. Po prostu przypisz ten widok do UINavigationItem.titleView. W razie potrzeby możesz również ustawić nazwę tekstu w kodzie. Zgłoszony błąd (23600285).
@IBOutlet var customFontTitleView: UIButton!
//Sometime later...
self.navigationItem.titleView = customFontTitleView