2014-02-08 3 views
0

У меня возникли проблемы с отображением времени на UITableViewCellПользовательский UITableViewCell заполнен таймером?

unsigned long long seconds = milliseconds/1000; 
unsigned long long minutes = seconds/60; 
unsigned long long hours = minutes/60; 

seconds -= minutes * 60; 
minutes -= hours * 60; 

NSString * result1 = [NSString `enter code here`stringWithFormat:@"%02lluH:%02lluM:%02lluS",hours,minutes,seconds]; 

self.menushowTime.text = result1;//populate cell label with time 

Всякий раз, когда я перезагрузки таблицы просмотра мой таймер работает со скоростью 2x, я имею в виду очень быстро. Как я могу предотвратить это.

+0

каким образом у вычисления миллисекунды? – santhu

+0

hm = components.hour * 3600000; NSUInteger mm = components.minute * 60000; NSUInteger sm = components.second * 1000; currentTime = hm + mm + sm; NSLog (@ "показать текущее время% lld", currentTime); Вот как я накапливаю – Abhishek

+0

и все работает нормально, сталкиваясь с проблемой, когда я запускаю прокрутку стола или перезаряжаю таблицу. – Abhishek

ответ

2
facing problem when i start scrolling tableview or reloading the tableview.? 

Да это происходит потому, что таймер подключен к NSRunLoop, поэтому, когда UI thread занят делает анимацию, NSRunLoop должен остановиться. Он завершает анимацию, а затем увеличивает таймер. поэтому таймер не будет отлично расти в течение этого времени.

использование ниже одного,

[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes]; 
+0

THEN Что делать, чтобы показать правильную tme – Abhishek

+0

проверить отредактированный ответ – santhu

+0

Я совершенно не понимаю, как стрелять по таймеру ma новичок, мог бы, пожалуйста, предоставить хороший пример того, как отображать время в uitableviewcell – Abhishek

0

первый расчет минут, позже секунд.
Измените свой код ниже.

minutes -= hours * 60; 
seconds -= minutes * 60; 
Смежные вопросы