适用于iOS的ListView Rows上的NativeScript Place Disclosure指标

时间:2016-07-09 19:23:56

标签: 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方面,我想对表格视图单元格使用本机披露指标。我可以使用以下代码删除分隔线:

@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吗?

1 个答案:

答案 0 :(得分:2)

您需要订阅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
   }
}