ios - NativeScript 在 iOS 的 ListView 行上放置披露指示器

标签 ios uitableview typescript angular nativescript

我的 NativeScript 页面中有一个这样的结构:

<ListView #listView [items]="summaryData" row="0">
    <Template let-item="item">
        <GridLayout columns="180, *, auto" rows="auto, *">
            <Label [text]="item.name" col="0" class="summary"></Label>
            <Label [text]="item.value" col=1 class="summary"></Label>
        </GridLayout>
    </Template>
</ListView>

对于 iOS 端,我想使用 TableView 单元格的 native 公开指示器。我可以使用以下代码删除分隔线:

@ViewChild("listView") listView: ElementRef;

ngOnInit() {
    this.summaryData = this._summaryService.load();
    if (this._page.ios) {
        let iosListView = <ListView>this.listView.nativeElement;
        iosListView.ios.separatorStyle = 0; // Removes the separator lines.
    }
}

但我似乎无法弄清楚如何访问各个行(又名 UITableViewCell)来设置accessoryType 值。这可以用 NativeScript 实现吗?

最佳答案

您需要订阅ListView的itemLoading,然后更改其中的accessoryType。所以你的 html 应该是这样的:

<ListView #listView [items]="summaryData" (itemLoading)="onItemLoading($event)" row="0">
    <Template let-item="item">
        <GridLayout columns="180, *, auto" rows="auto, *">
            <Label [text]="item.name" col="0" class="summary"></Label>
            <Label [text]="item.value" col=1 class="summary"></Label>
        </GridLayout>
    </Template>
</ListView>

然后在你的组件中添加:

import {ItemEventData} from "ui/list-view";

onItemLoading(args: ItemEventData) {
   if (args.ios) {
       // args.ios is instance of UITableViewCell
       args.ios.accessoryType = 1; // UITableViewCellAccessoryDisclosureIndicator
   }
}

关于ios - NativeScript 在 iOS 的 ListView 行上放置披露指示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38285528/

相关文章:

ios - 仅启用后置麦克风 ios openTok

swift - 在表/ Collection View 和 ScrollView 之间平滑滚动

iphone - 以编程方式选择 tableview 行

typescript :对象键联合的类型不能用作该对象的键

typescript - 在哪里可以找到定义 OpenAPI Json 的 TypeScript 接口(interface)?

ios - 在应用程序启动时获取测试 valentin 屏幕

ios - 重用具有多个数据源的 UITableView 的最佳设计模式是什么?

iOS:在 XIB 中禁用 UI 镜像

ios - 自定义 UITableViewCell ImageView 未显示

javascript - 使用 javascript 创建一个唯一的对象标识符