我對凝固時間的工作,每當一個滑塊移動,我跟着這個鏈接Slider with real time in Label並得到了大部分的東西的工作,這裏是代碼,我目前在設定時間
//這個工作代碼是檢查系統設置是否爲24小時格式或12小時格式
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale currentLocale]];
[formatter setDateStyle:NSDateFormatterNoStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
NSString *dateString = [formatter stringFromDate:[NSDate date]];
NSRange amRange = [dateString rangeOfString:[formatter AMSymbol]];
NSRange pmRange = [dateString rangeOfString:[formatter PMSymbol]];
m_is24h = (amRange.location == NSNotFound && pmRange.location == NSNotFound);
下面是
UISlider *slider = (UISlider *)sender;
NSUInteger numberOfSlots = 24*2 - 1; //total number of 30mins slots
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"h:mm a"];
NSDate *zeroDate;
NSString *amString = [[formatter AMSymbol]uppercaseString];
NSString *timeString = [[[NSString stringWithFormat:@"12:00"]stringByAppendingString:@" "]stringByAppendingString:amString];
if(m_is24h)
{
zeroDate = [dateFormatter dateFromString:@"00:00"];
}
else
{
zeroDate = [dateFormatter dateFromString:timeString];
}
NSUInteger actualSlot = roundf(numberOfSlots*slider.value);
NSTimeInterval slotInterval = actualSlot * 30 * 60;
NSDate *slotDate = [NSDate dateWithTimeInterval:slotInterval sinceDate:zeroDate];
[dateFormatter setDateFormat:@"h:mm a"];
m_timeLabel.text = [[dateFormatter stringFromDate:slotDate]uppercaseString];
我測試此代碼與印度地區一個滑塊碼無論是24小時還是12小時格式,一切正常。現在,當我將區域更改爲日本或歐洲或任何其他地區時,當我移動滑塊時,24小時制格式將不起作用,但如果將格式從設置更改爲12小時,它的工作原理,我不明白我在這裏做了什麼錯誤。
「24小時格式無法正常工作」是什麼意思?怎麼了? – user3071962
當我移動滑塊時,時間不會改變。 – Ranjit
現在我假設'[dateFormatter dateWithString:]'將零返回到zeroDate,因爲它無法分析傳遞的字符串。所有後續的操作zeroDate也將返回零。這應該很容易在調試器中驗證,對吧? – user3071962