Ios 计算当UISlider值更改时更新的辅助功能标签的时间的正确方法?
所以我使用UISlider作为音频播放器的洗涤器。我试图做的是在UISlider的值发生更改时更新标签,以便它能够正确地显示当前音频经过的时间(以分钟和秒为单位)。这是我目前的代码:Ios 计算当UISlider值更改时更新的辅助功能标签的时间的正确方法?,ios,uilabel,nstimeinterval,uiaccessibility,Ios,Uilabel,Nstimeinterval,Uiaccessibility,所以我使用UISlider作为音频播放器的洗涤器。我试图做的是在UISlider的值发生更改时更新标签,以便它能够正确地显示当前音频经过的时间(以分钟和秒为单位)。这是我目前的代码: - (IBAction)valueChanged:(id)sender { if (!self.scrubbing) { [[CRAudioUtility sharedUtility]seekToTime:self.progressSlider.value]; NSInteg
- (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”以单数或复数形式正确发布。我可以采取什么样的解决方案来处理这个案件
我可以采取什么样的解决方案来处理这个案件
似乎你想单独考虑各种可能性:
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];
}
我不会投反对票,但这不是正确的方式,也不适用于X语言/地区设置(!)和X组合(例如,增加秒数,并考虑单数和复数的分钟和秒:)我不知道更好的选择:D我将以这样的方式结束…:PIf使用Swift,您可以使用带有where子句的switch语句来检查每个条件,这可能看起来更整洁,但逻辑仍然相似。