您的位置:首页 > 移动开发 > IOS开发

iOS自适应手机语言的国家&国旗列表

2017-08-09 19:57 1626 查看

项目需要一个选择国家的列表,想想要自己列出所有国家就够麻烦了,还要适配手机语言就更加是个不可能的任务,后来发现苹果是给出了直接的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”的表示是中国,我将它放在列表第一个显示方便选择。

其余的关于列表的代码就很常见啦,不会的可以在工程中查看。

希望能帮助到需要的人,这个知识点知道了就很方便,不知道就很麻烦。

示例工程:https://github.com/Cloudox/OXCountryTable

版权所有:http://blog.csdn.net/cloudox_
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iOS 国家 国旗