如何在 iOS 上设置 font-family 大标题?

How can I set the font-family of large titles on iOS?

通过将事件侦听器附加到页面上的 loaded-event 并获取 NativeView-object 我已经能够将 prefersLargeTitle 设置为 true:

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

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

这可行,但我想更改大标题的 font-family。我如何在 Nativescript 中执行此操作?

尝试将下面的代码添加到您的 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 标志。