2012-06-13 2 views
2

Мне нужно постоянно обновлять время воспроизведения на ярлыке. Я получаю время NSTimeInterval currentProgress = self.moviePlayerController.currentPlaybackTime;, которое возвращает двойное значение. Но формат, в котором мне нужно отображать, - «MM: SS» (00:00). Я попытался следующий кодСоздайте NSString с ведущими нулями в течение минут и секунд

NSTimeInterval currentProgress = self.moviePlayerController.currentPlaybackTime; 

float min = floor(currentProgress/60); 
float sec = round(currentProgress - min * 60); 

Когда время прогресс составляет 10 минут и 10 секунд он отображает прекрасно, как «10:10». Но проблема здесь в том, что время выполнения составляет 1 минуту и ​​7 секунд, в метке отображается «1: 7». Мой намеченный дисплей - «01:07». Как я могу это сделать?

ответ

8
NSString *time = [NSString stringWithFormat:@"%02d:%02d", (int)min, (int)sec]; 

Попробуйте это. Должно просто работать!

+0

U пропустил @ в заявлении ... Пожалуйста, измените его. –

+0

Конечно .. извините. –

5

Это должно сделать трюк:

int seconds = (int)currentProgress % 60; 
int minutes = currentProgress/60; 

NSString *result = [NSString stringWithFormat:@"%02d:%02d", minutes, seconds]; 

Формат %02d спецификатор автоматически подушечка с 0s, так что широкие поля как по крайней мере 2 символов.

Смежные вопросы