2013-07-26 1 views
0

У меня есть несколько программно сгенерированных UILabels в UIView (по одной для каждой записи в базе данных). Я хочу, чтобы они периодически обновлялись (скажем, раз в 5 секунд), но так как они динамический, это сложно получить «ручку» на них, чтобы изменить их значения.Как обновить программно сгенерированные UILabels с помощью CADisplayLink?

У кого-нибудь есть идея, как это сделать?

+0

http://stackoverflow.com/a/7799252/1059705 видеть эту ссылку, может помочь вам. – Bala

ответ

1

При создании я установил бы тег для каждой метки, увеличивая каждое значение тега параллельно с индексом массива, из которого вы их создаете. Тогда вы можете получить их в любой селекторе вы объявляете для CADisplayLink объекта от их конкретного представления с помощью

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

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

//update label 

} 

Надежда Я понял ваш вопрос правильно

0

Есть много способов, сначала необходимо сохранить ссылку на метки ... массив должен быть хорошим, и, вероятно, лучше иметь пользовательский ярлык с моделью, поэтому вы фактически меняете значения на модели, и вам нужно просто отправить сообщение на ярлык, чтобы перерисовать содержимое, и вы можете сделать это таким образом:

[labelArray makeObjectsPerformSelector:@selector(yourMethodToRefreshTheContent)]; 

вы даже можете передать объект, но это значит, что будет один и тот же объект для всех меток

[labelArray makeObjectsPerformSelector:@selector(valueSetter) withObject:newValue]; 
Смежные вопросы