我需要有关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)
创建一个可用国家/地区的数组,并在这些委托方法和数据源方法中使用该数组
- (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)