首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未呈现Nativescript IOS 13 ui-listview组件

未呈现Nativescript IOS 13 ui-listview组件
EN

Stack Overflow用户
提问于 2019-12-16 11:07:01
回答 1查看 453关注 0票数 0

嗨,伙计们,我对IOS13上的listview组件有问题,我试着更新到最新版本,但这不起作用

我通过修补listview.ios.js修复了它,就像评论中建议的那样,直接在node_modules中进行修补:

https://github.com/NativeScript/nativescript-ui-feedback/issues/1160#issuecomment-542039004

这是很好的工作,但有什么不同的补丁吗?

例如:

我尝试创建新文件app-platform.ios.js

并将缺失的方法直接附加到列表视图,如:

代码语言:javascript
复制
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;
};

但是这会增加我的应用程序,我不能调用未定义的方法:/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-23 23:34:08

如果有人还需要这个,可以在您的main.js路径列表视图中解决这个问题。

代码语言:javascript
复制
const application = require('application');


if (application.ios) {
    const view_1 = require("tns-core-modules/ui/core/view");
    const listView = require('nativescript-ui-listview');

    listView.ExtendedListViewCell.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;
    };
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59355398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档