gpt4 book ai didi

ios - Nativescript iPhone X - 如何在两次滑动后的 "hide"主页指示器转到主屏幕

转载 作者:行者123 更新时间:2023-12-01 19:39:26 24 4
gpt4 key购买 nike

我正在使用 Nativescript Angular,(NS 版本 4.1)我正在尝试实现用户向上滑动两次以回家的要求
新的 IOS 设备。很多手机游戏都有这个功能。

我知道这与 prefersHomeIndicatorAutoHidden 有关和preferredScreenEdgesDeferringSystemGesturesViewController有没有办法可以在 Nativescript Angular 中访问这些方法?
或者只是设置一个主页指示器需要两次滑动才能回家?

任何帮助将不胜感激谢谢!

最佳答案

有一个开放的feature request允许覆盖 iOS Root View Controller 属性。您必须实际覆盖 preferredScreenEdgesDeferringSystemGesturesUIRectEdge.All根据 Apple documentation你必须更新 setneedsupdateofhomeindicator也是。

但是,如果您尝试直接访问这些属性(例如 this.page.ios.prefersHomeIndicatorAutoHidden = true ),则会出现错误 TypeError: Attempted to assign to readonly property.
这些是讨论的解决方法here您在哪里复制 Controller ,修改属性并将其分配回所有者。

const UIViewControllerImpl = new page.Page().ios.constructor as typeof UIViewController;

const MyCustumUIViewController = UIViewController['extend'](Object.assign(
{},
// merge in the original methods
...UIViewControllerImpl.prototype,
// add additional instance method / property overrides here, such as ...
{
preferredScreenEdgesDeferringSystemGestures() {
console.log("This will be called from native!");
return UIRectEdge.All;
}
}
));

const performNavigation = frame.Frame.prototype['performNavigation'];
frame.Frame.prototype['performNavigation'] = function(navigationContext:{entry:frame.BackstackEntry}) {
const page = navigationContext.entry.resolvedPage;
const controller = (<typeof UIViewController>MyCustumUIViewController).new();
controller['_owner'] = new WeakRef(page);
controller.automaticallyAdjustsScrollViewInsets = false;
controller.view.backgroundColor = new color.Color("white").ios;
page['_ios'] = controller;
page.setNativeView(controller.view);
performNavigation.call(this, navigationContext);
}

关于ios - Nativescript iPhone X - 如何在两次滑动后的 "hide"主页指示器转到主屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56572420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com