【问题标题】:WKinterfaceImage in table losing image when refreshed刷新时表中的 WKinterfaceImage 丢失图像
【发布时间】:2015-03-03 15:43:36
【问题描述】:

我在 WatchKit 应用中有一个 WKInterfaceTable。表中的每一行都有一个图像和一个标签。在第一次加载接口控制器时,我在awakeWithContextwillActivate 中设置了表格,一切正常。标签和图像按预期显示其内容。但是如果我重新加载表格以响应用户选择一行,所有图像都会消失。

我在WKInterfaceImage 上使用setImageNamed: 来设置WatchKit 应用程序包中的图像。我尝试将图像放在资产文件中并单独包含在项目中。什么给了?

我设置和重置表格的代码如下所示:

[self.table setNumberOfRows:self.rowData.count withRowType:@"myRowType"];
for (NSInteger i = 0; i < self.table.numberOfRows; i++)
{
  MyRowClass row = [self.table rowControllerAtIndex:i];
  MyDataClass data = [self.rowData objectAtIndex:i];
  [row.label setTitle:data.title];
  [row.image setImageNamed:@"MyImage.png"];
}

【问题讨论】:

  • 我观察到标签的相同行为:重新加载表格后,那些值没有改变的标签显示默认值。在设置为所需值之前将值设置为"" 可以修复它。绝对是一个错误。

标签: ios watchkit wkinterfacetable wkinterfaceimage


【解决方案1】:

有一个错误应该在下一个测试版中修复。有一种解决方法,就是在分配新值之前重置该值。

试试这个:

[self.table setNumberOfRows:self.rowData.count withRowType:@"myRowType"];
for (NSInteger i = 0; i < self.table.numberOfRows; i++) {
    MyRowClass row = [self.table rowControllerAtIndex:i];
    MyDataClass data = [self.rowData objectAtIndex:i];
    [row.label setTitle:data.title];
    [row.image setImageNamed:nil];
    [row.image setImageNamed:@"MyImage.png"];
}

【讨论】:

  • 太棒了。由于 nil 路径,它会吐出一堆错误消息,但它可以工作。
  • 在最新的测试版中,这个错误已被修复,不再需要做这个变通方法。
  • 我看到它已在 2015 年 3 月 9 日发布的当前 6.2 中修复。
猜你喜欢
  • 1970-01-01
  • 2017-04-19
  • 2014-03-30
  • 2022-10-08
  • 1970-01-01
  • 1970-01-01
  • 2015-12-12
  • 2020-03-25
相关资源
最近更新 更多