UIPickerView适用于所在国家/地区

san*_*osh 5 iphone ios4

我需要有关UIPickerView的帮助,在我的应用程序中,我必须在可用的国家/地区显示UIPickerView.如果任何机构已经实施了国家选择器,请分享代码.

谢谢

And*_*sak 20

这是我为此目的创建的国家plist:

https://gist.github.com/vilcsak/c205dfd153a3e465f47e

实现应该非常简单,但这里有一些我们的代码:

- (id)init {
    if ((self = [super init])) {
        self.countries = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Countries" ofType:@"plist"]];
    }
    return self;
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
    self.currentCountry = [[self.countries objectAtIndex:row] objectForKey:@"code"];
    self.countryLabel.text = [[self.countries objectAtIndex:row] objectForKey:@"name"];
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
    return self.countries.count;
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
    return [[self.countries objectAtIndex:row] objectForKey:@"name"];
}
Run Code Online (Sandbox Code Playgroud)


Ish*_*shu 1

创建一个可用国家/地区的数组,并在这些委托方法和数据源方法中使用该数组

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
Run Code Online (Sandbox Code Playgroud)

--> 返回数组索引处的值

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
Run Code Online (Sandbox Code Playgroud)

数组中元素的数量

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

return 1;
Run Code Online (Sandbox Code Playgroud)