Правильный способ рассчитать время для метки доступности, которая обновляется при изменении значения UISlider?

Поэтому я использую UISlider для скруббера аудиоплеера. Я пытаюсь обновить метку всякий раз, когда изменяется значение UISlider, чтобы он мог правильно отображать текущее время звука в минутах и ​​секундах. Вот мой текущий код:

- (IBAction)valueChanged:(id)sender {
    if (!self.scrubbing) {
        [[CRAudioUtility sharedUtility]seekToTime:self.progressSlider.value];
        NSInteger value    = [CRAudioUtility sharedManager].currentPlaybackTime;
        NSInteger minutes    = value / 60;
        NSInteger seconds = value % 60;

        NSString *time_stamp = [NSString stringWithFormat:@"%d hours:%d minutes",minutes,seconds];
        [self.progressSlider setAccessibilityValue:time_stamp];
        self.progressSliderLabel.text = [NSString stringWithFormat:@"%d:%d minutes",minutes,seconds;

    }
}

Аудио элементы могут быть, а могут и не быть длиннее часа, а продолжительность может быть больше одного часа.

Поскольку объявлена ​​accessibilityLabel, я должен убедиться, что слово "hour" правильно объявлено в формате единственного или множественного числа. Какие решения я могу сделать, чтобы справиться с этим делом?

1 ответ

Решение

Какие решения я могу сделать, чтобы справиться с этим делом?

Похоже, вы просто хотите рассмотреть различные возможности отдельно:

if (minutes > 120) {
    time_stamp = [NSString stringWithFormat:@"%d hours:%d minutes", minutes / 60, minutes % 60];
}
else if (minutes > 60) {
    time_stamp = [NSString stringWithFormat:@"1 hour:%d minutes", minutes % 60];
}
else {
    time_stamp = [NSString stringWithFormat:@"%d:%d minutes", minutes, seconds];
}
Другие вопросы по тегам