如何使用CADisplayLink更新以编程方式生成的UILabels?

时间:2013-07-26 13:00:17

标签: ios cadisplaylink

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

任何人都知道如何做到这一点?

2 个答案:

答案 0 :(得分:1)

创建后,我会为每个标签设置标记,并将每个标记值与您​​创建它们的数组的索引并行递增。然后,您可以使用

从他们的特定视图中为您的CADisplayLink对象声明的任何选择器中获取它们
for (int i = 0; i < [arrayOfData count]; i++){

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

//update label

}

希望我能正确理解你的问题

答案 1 :(得分:0)

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

[labelArray makeObjectsPerformSelector:@selector(yourMethodToRefreshTheContent)];

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

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