【问题标题】:How to update programmatically generated UILabels using CADisplayLink?如何使用 CADisplayLink 更新以编程方式生成的 UILabel?
【发布时间】:2013-07-26 13:00:16
【问题描述】:

我在UIView 中有许多以编程方式生成的UILabels(数据库中的每条记录一个)。我希望这些定期更新(比如每 5 秒一次),但由于它们是动态的,因此很难对它们进行“处理”以更改它们的值。

有人知道怎么做吗?

【问题讨论】:

标签: ios cadisplaylink


【解决方案1】:

在创建时,我会为每个标签设置标签,并与创建它们的数组的索引并行递增每个标签值。然后,您可以在您为 CADisplayLink 对象声明的任何选择器中从他们的特定视图中使用

for (int i = 0; i < [arrayOfData count]; i++){

UILabel *label = (UILabel*)[self.view viewWithTag:i];

//update label

}

希望我正确理解了您的问题

【讨论】:

    【解决方案2】:

    有很多方法,首先你需要保留对标签的引用......数组应该很好,而且最好有一个带有模型的自定义标签,所以你实际上改变了模型上的值,你只需向标签发送消息以重绘内容,您可以这样做:

    [labelArray makeObjectsPerformSelector:@selector(yourMethodToRefreshTheContent)];
    

    你甚至可以传递一个对象,但这意味着所有标签都是同一个对象

    [labelArray makeObjectsPerformSelector:@selector(valueSetter) withObject:newValue];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-27
      • 1970-01-01
      • 1970-01-01
      • 2021-10-03
      • 1970-01-01
      相关资源
      最近更新 更多