1. 程式人生 > >iOS自適應手機語言的國家&國旗列表

iOS自適應手機語言的國家&國旗列表

專案需要一個選擇國家的列表,想想要自己列出所有國家就夠麻煩了,還要適配手機語言就更加是個不可能的任務,後來發現蘋果是給出了直接的API來做的,很方便,我加上了大部分國家的國旗,這個是系統沒給的,放出來方便大家。

實現

列表怎麼實現就不說了,直接說怎麼獲取國家陣列。

    NSLocale *locale = [NSLocale currentLocale];
    NSArray *countryArray = [NSLocale ISOCountryCodes];
    for (NSString *countryCode in countryArray) {
        if
([countryCode isEqualToString:@"CN"]) { [self.countryCodeArray insertObject:countryCode atIndex:0]; NSString *displayNameString = [locale displayNameForKey:NSLocaleCountryCode value:countryCode]; [self.countryArray insertObject:displayNameString atIndex:0]; continue
; } [self.countryCodeArray addObject:countryCode]; NSString *displayNameString = [locale displayNameForKey:NSLocaleCountryCode value:countryCode]; [self.countryArray addObject:displayNameString]; }

如上面程式碼,可以直接獲取到各個國家的程式碼,這裡會涉及到一個很有意思的地方,如果直接檢視 self.countryCodeArray 這個陣列,會發現都只是國家代號,但如果去獲取他的值,會發現自動變成當前裝置語言下的國家名了。

上面程式碼中 self.countryCodeArray 這個陣列是用來存放國家名的,self.countryCodeArray 這個陣列是存放國家程式碼本身的,這是因為我的國旗圖片名都是國家程式碼,所以需要用這個程式碼來獲取圖片從而在列表中顯示圖片。

程式碼中遇到代號為“CN”的表示是中國,我將它放在列表第一個顯示方便選擇。

其餘的關於列表的程式碼就很常見啦,不會的可以在工程中檢視。

希望能幫助到需要的人,這個知識點知道了就很方便,不知道就很麻煩。