WKInterfaceTable 在添加行时显示故事板数据
WKInterfaceTable shows storyboard data when adding rows
我有一个带有单行控制器的 WKInterfaceTable
。我正在使用以下代码将数据绑定到 table:
[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:
逐行添加,我会遇到同样的问题。无论哪种情况,您都必须先 添加 一行到 table,然后才能 更新 该行以显示正确的数据。
第一个问题是,因此,用户可以在添加的行和绑定到它的数据之间看到虚拟故事板数据。
我试过了
- 隐藏包含 table 的组直到循环结束,但是随后第一次加载的第一个 table 项目最终就像它完全绑定到
nil
(甚至虽然不是) (someone else has seen this)
- 隐藏包含每行内容的组,直到组结束,但滚动处理不佳,行弹出效果不佳
- 将 table 推到另一组的视野之外,直到循环结束,但您仍然可以向下滚动到它
是否真的没有方式来呈现table行然后显示给用户?
我有一个类似的问题,通过将作业分派到主线程上解决了这个问题。
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.
}
});
我有一个带有单行控制器的 WKInterfaceTable
。我正在使用以下代码将数据绑定到 table:
[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:
逐行添加,我会遇到同样的问题。无论哪种情况,您都必须先 添加 一行到 table,然后才能 更新 该行以显示正确的数据。
第一个问题是,因此,用户可以在添加的行和绑定到它的数据之间看到虚拟故事板数据。
我试过了
- 隐藏包含 table 的组直到循环结束,但是随后第一次加载的第一个 table 项目最终就像它完全绑定到
nil
(甚至虽然不是) (someone else has seen this) - 隐藏包含每行内容的组,直到组结束,但滚动处理不佳,行弹出效果不佳
- 将 table 推到另一组的视野之外,直到循环结束,但您仍然可以向下滚动到它
是否真的没有方式来呈现table行然后显示给用户?
我有一个类似的问题,通过将作业分派到主线程上解决了这个问题。
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.
}
});