???由于業(yè)務(wù)需要,最近在開發(fā)過程中遇到了攝氏度和華氏度之間的轉(zhuǎn)換情況,查了網(wǎng)上沒有相關(guān)例子,就分享一下。我們的需求是這樣的,在App的配置頁面需要展示溫度的單位,但是由于業(yè)務(wù)關(guān)系需要在美國銷售,所以要迎合美國市場,又要兼容其他地方(全球百分之九十的地方都是用的攝氏度來作為溫度單位),這就需要做一個溫度單位的轉(zhuǎn)換,都知道美國是個獨立的國度,他們使用的顯示單位都是“華”開頭的,比如:華氏度、華里。。。那么接下來介紹一下App是怎么轉(zhuǎn)換單位的。
在這里我還是要推薦下我自己建的iOS開發(fā)學習群:680565220,群里都是學ios開發(fā)的,如果你正在學習ios ,小編歡迎你加入,今天分享的這個案例已經(jīng)上傳到群文件,大家都是軟件開發(fā)黨,不定期分享干貨(只有iOS軟件開發(fā)相關(guān)的),包括我自己整理的一份2018最新的iOS進階資料和高級開發(fā)教程
? ? ? ?首先,要知道的是攝氏度和華氏度之間的轉(zhuǎn)換公式,只要知道了這個固定的轉(zhuǎn)換公式,就成功了三分之一,具體的攝氏度和華氏度轉(zhuǎn)換公式為:℃ = (℉ - 32) / 1.8 (華氏度轉(zhuǎn)攝氏度);℉ = ℃ * 1.8 + 32 (攝氏度轉(zhuǎn)華氏度)。
? ? ? ?接下來就是進行具體的轉(zhuǎn)換操作了,這里我用一個方法來處理攝氏度和華氏度之間的轉(zhuǎn)換,具體如下所示:
-?(CGFloat)temperatureUnitExchangeValue:(CGFloat)value?changeTo:(TemperatureUnit)unit?{?//溫度單位轉(zhuǎn)換方法??
????if?(unit?==?Fahrenheit)?{??
????????return?32?+?1.8?*?value;?//華氏度??
????}else?{??
????????return?(value?-?32)?/?1.8;?//攝氏度??
????}??
} ?
? ? ? 然后在切換按鈕的點擊事件里面,根據(jù)滑動選擇來改變具體的數(shù)值,具體如下所示:
//切換溫度按鈕的點擊事件??
-?(IBAction)titleBtnClick:(UIButton?*)sender?{??
????//點擊的切換的事件??
????if?(!sender.isSelected)?{??
????????_temperatureUnit?=?Fahrenheit;??
????}else?{??
????????//攝氏溫度??
????????_temperatureUnit?=?CentigradeDegree;??
????}??
????sender.selected?=?!sender.selected;??
????_itemModel.minValue?=?[self?temperatureUnitExchangeValue:_itemModel.minValue?changeTo:_temperatureUnit];?//調(diào)用溫度單位轉(zhuǎn)換方法??
????_itemModel.maxValue?=?[self?temperatureUnitExchangeValue:_itemModel.maxValue?changeTo:_temperatureUnit];??
????_itemModel.temperatureUnit?=?_temperatureUnit;??
????[self?theValue:_itemModel];//重新設(shè)置顯示??
????[self?progressView:self.progressView?didEndChangedProgress:_currentProgress];??
} ?
? ? ? ?通過以上簡單處理,就可以實現(xiàn)簡單的溫度單位切換,具體效果如下圖所示:
????????剩余代碼就不再一一貼出來了,如有需要具體代碼,可以直接聯(lián)系我,然后隨時提供給有需要的同行。
? ? ? ? 總結(jié)一下轉(zhuǎn)換過程,其實關(guān)鍵步驟就兩步:第一步是設(shè)置好攝氏度和華氏度之間的轉(zhuǎn)換公式;第二步在具體使用場景里面調(diào)用這個轉(zhuǎn)換公式。雖然步驟很簡單,但是很實用,希望可以給有需要的人帶來幫助。