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

項目需要一個選擇國家的列表,想想要自己列出所有國家就夠麻煩了,還要適配手機語言就更加是個不可能的任務,后來發(fā)現(xiàn)蘋果是給出了直接的API來做的,很方便,我加上了大部分國家的國旗,這個是系統(tǒng)沒給的,放出來方便大家。

image.png

實現(xiàn)

列表怎么實現(xiàn)就不說了,直接說怎么獲取國家數(shù)組。

    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 這個數(shù)組,會發(fā)現(xiàn)都只是國家代號,但如果去獲取他的值,會發(fā)現(xiàn)自動變成當前設備語言下的國家名了。

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

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

其余的關(guān)于列表的代碼就很常見啦,不會的可以在工程中查看。

結(jié)

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


示例工程:https://github.com/Cloudox/OXCountryTable
查看作者首頁

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容