【发布时间】:2023-04-02 14:22:01
【问题描述】:
大家好,我在 IOS13 上的 listview 组件有问题 我尝试更新到最新版本,但不起作用
我通过直接在 node_modules 中修补 listview.ios.js 来修复它 喜欢这里评论的建议:
https://github.com/NativeScript/nativescript-ui-feedback/issues/1160#issuecomment-542039004
这工作正常,但有什么不同的补丁吗?
例如:
我尝试创建新文件 app-platform.ios.js
并将缺少的方法直接附加到列表视图,例如:
const listview = require('nativescript-ui-listview');
listview.ListViewCell.prototype.systemLayoutSizeFittingSizeWithHorizontalFittingPriorityVerticalFittingPriority = function (targetSize, horizontalFittingPriority, verticalFittingPriority) {
if (this.view && this.view.itemView && this.view.itemView.parent) {
var owner = this.view.itemView.parent;
owner._preparingCell = true;
var dimensions = owner.layoutCell(this, undefined);
owner._preparingCell = false;
return CGSizeMake(view_1.layout.toDeviceIndependentPixels(dimensions.measuredWidth), view_1.layout.toDeviceIndependentPixels(dimensions.measuredHeight));
}
return targetSize;
};
但这会使我的应用程序崩溃,我无法在未定义上调用方法:/
【问题讨论】:
-
您确定您的
package.json参考"nativescript-ui-listview": "^7.1.0",或更高版本吗? -
是的,它不会渲染项目行,而且我的 tns-ios 是在 4.0.1 和 tns cli 是在 5.4.2
-
您的
tns-core-modules是什么版本?还有你的包锁文件中nativescript-ui-core的版本是什么? -
如果我直接编辑 listview.ios.js ,它与版本无关,但我如何将这些方法添加到原型中?
-
这与版本有关,因为我猜那些特定的代码行在 7.x 中已修复。如果您使用较高版本的 UI 包运行较低版本的 tns 运行时/核心模块,则可能存在兼容性问题。但是,如果你可以修补它,你可以,但你应该知道如何和在哪里。我不确定您在哪里找到上述代码,但包中没有
ListViewCell的引用。 Here 是一个代码 sn-p 似乎适用于您的情况,使用旧版本的列表视图。
标签: nativescript angular2-nativescript nativescript-telerik-ui nativescript-plugin