Как я могу установить семейство шрифтов больших заголовков на iOS? - PullRequest
0 голосов
/ 13 января 2020

Подключив прослушиватель событий к loaded-event на странице и получив NativeView-object, я смог установить prefersLargeTitle в значение true:

loaded(event){
  const page = event.object;

  if (isIOS) {
    page.frame.ios.controller.navigationBar.prefersLargeTitles = true;
  }
}

Это работает, но я бы нравится менять семейство шрифтов большого заголовка. Как я могу сделать это в Nativescript?

1 Ответ

0 голосов
/ 14 января 2020

Попробуйте добавить приведенный ниже код к вашему app.js

import {
    isIOS
} from "tns-core-modules/platform";
import {
    ActionBar
} from "tns-core-modules/ui/action-bar";
import {
    Font
} from "tns-core-modules/ui/styling/font";

if (isIOS) {
    ActionBar.prototype.originalSetColor = ActionBar.prototype.setColor;
    ActionBar.prototype.setColor = function (navBar, color) {
        ActionBar.prototype.originalSetColor.call(this, navBar, color);
        var newDict = {
            [NSFontAttributeName]: Font
                .default
                .withFontFamily(
                    "yourFontFamily")
                .withFontSize(yourFontSize)
                .getUIFont(UIFont
                    .systemFontOfSize(20)),
        };
        if (navBar.largeTitleTextAttributes) {
            newDict[NSForegroundColorAttributeName] = navBar.largeTitleTextAttributes.valueForKey(NSForegroundColorAttributeName);
        }
        navBar.largeTitleTextAttributes = newDict;
    };
}

Вы все равно можете установить флаги prefersLargeTitles, как вы уже делаете.

...