1

我有WKInterfaceTable一个单行控制器。我正在使用以下代码将数据绑定到表:

[self.table setNumberOfRows:[data count] withRowType:@"RowController"];
for (int i = 0; i < [data count]; i++)
{
    RowController *row = [self.table rowControllerAtIndex:i];
    [row bind:[data objectAtIndex:i]]; // sets labels in the row etc.
}

如果我使用insertRowsAtIndexes:withRowTypes:. 无论哪种情况,您都必须先向表中添加一行,然后才能更新该行以显示正确的数据。

第一个问题是,正因为如此,用户可以看到正在添加的行和绑定到它的数据之间的虚拟故事板数据。

我试过了

  • 隐藏包含表的组,直到循环完成,但是第一次加载时的第一个表项最终好像它完全绑定到nil(即使它不是)(其他人已经看到了这个
  • 隐藏包含每行内容的组,直到组完成,但滚动处理很差,行弹出很差
  • 与另一组一起将表格推到视野之外,直到循环完成,但您仍然可以向下滚动到它

真的没有办法在向用户显示之前呈现表格行吗?

4

1 回答 1

3

我有一个类似的问题,通过将作业分派到主线程来解决。

dispatch_async(dispatch_get_main_queue(), ^{
    [self.table setNumberOfRows:[data count] withRowType:@"RowController"];
    for (int i = 0; i < [data count]; i++)
    {
        RowController *row = [self.table rowControllerAtIndex:i];
        [row bind:[data objectAtIndex:i]]; // sets labels in the row etc.
    }
});
于 2015-06-01T22:16:12.200 回答