我在一个视图中有4个UIpickerviews。我想用一个数组填充所有这些。此时,当视图出现时,它会显示一个包含数据的选择器视图,但其他视图为空。当我开始滚动第二个时,它开始填充但第一个开始变空。我正在使用填充UIPickerVIew的常用方法。
答案 0 :(得分:0)
作为问题答案的开头,您必须为UIPickerViewDataSource实现委托例程。
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 4;
}
您的代码中可能已经有上述例程!!!
接下来,您必须实施以下内容:
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
switch(component){
case 0:
// return X based upon how many for the left-most column
case 1:
// return X based upon how many for the second left-most column
case 2:
// return X based upon how many for the third left-most column
default: // Serves as 4
// return X based upon how many for the right-most column
}
}
或者在上面的例程中它可以简单地(如果你的数据填充每列的n,因此你的数组大小应该是n * 4)
[myArray count]; // Where myArray is replaced with you array variable name
最后实施:
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
// Assuming your array is filled with strings only
int index = [myArray count] / 4 * component + row;
return [myArray objectAtIndex:index];
}
这假设您的数组看起来像
[1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4]
其中数字表示数据所属的列,而不是数据本身