如何使用标签创建五个UIPickerView?在iPhone中,如何为每个UIPickerView赋予不同的名称?
我现在有2个UIPickerView,我想稍后再添加3个。代码如下:如何使用标签创建五个UIPickerView?在iPhone中,如何为每个UIPickerView赋予不同的名称?,iphone,ios,objective-c,xcode,uipickerview,Iphone,Ios,Objective C,Xcode,Uipickerview,我现在有2个UIPickerView,我想稍后再添加3个。代码如下: -(void)viewDidLoad{ Pos_x = 5; Pos_y = 70; for (i= 0; i<2; i++) { myPickerView = [[UIPickerView alloc] init]; myPickerView.frame = CGRectMake(Pos_x,Pos_y,150,300); myPickerView.tag = i; myPickerView.delegate =
-(void)viewDidLoad{
Pos_x = 5;
Pos_y = 70;
for (i= 0; i<2; i++) {
myPickerView = [[UIPickerView alloc] init];
myPickerView.frame = CGRectMake(Pos_x,Pos_y,150,300);
myPickerView.tag = i;
myPickerView.delegate = self;
myPickerView.showsSelectionIndicator = YES;
[self.view addSubview:myPickerView];
if (i==0) {
// Init the data array.
Array_1 = [[NSMutableArray alloc] init];
// Add some data for demo purposes.
[Array_1 addObject:@"One"];
[Array_1 addObject:@"Two"];
[Array_1 addObject:@"Three"];
[Array_1 addObject:@"Four"];
[Array_1 addObject:@"Five"];
}
if (i==1) {
Array_2 = [[NSMutableArray alloc] init];
// Add some data for demo purposes.
[Array_2 addObject:@"One1"];
[Array_2 addObject:@"Two1"];
[Array_2 addObject:@"Three1"];
[Array_2 addObject:@"Four1"];
[Array_2 addObject:@"Five1"];
}
Pos_x = Pos_x + 162;
}
}
现在我的问题是如何在两个UIPickerView上显示不同的数据?与pickerview.tag==0类似,它将显示return[Array_1 objectAtIndex:row];
并且pickerview.tag==1它将显示return[Array_2 objectAtIndex:row];?
欢迎您提出任何想法或建议。您可以使用数组或字典来存储内容数组,并使用picker标记获取它们。例如
NSArray *contentArrays = [[NSArray alloc] initWithObjects:Array_1, Array_2, nil];
然后使用
[contentArrays objectAtIndex:pickerView.tag]获取内容数组代码>您可以通过设置pickerview的标记来执行此操作:
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger) {
if(pickerView.tag == 1)
{
// do something with picker one
}
else if(pickerView.tag == 2)
{
// the other picker
}
}
否则:
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger) {
switch(pickerView.tag){
case 1:
//do something
break;
case 2:
//do other thing
break;
default:
break;
}
}
希望这有帮助
请同时查看此代码:请检查此代码:
-(void)viewDidLoad{
myPickerView = [[UIPickerView alloc] init];
myPickerView.frame = CGRectMake(5,70,150,300);
//myPickerView.tag = i;
myPickerView.delegate = self;
myPickerView.showsSelectionIndicator = YES;
[self.view addSubview:myPickerView];
Array_1 = [[NSMutableArray alloc] init];
// Add some data for demo purposes.
[Array_1 addObject:@"One"];
[Array_1 addObject:@"Two"];
[Array_1 addObject:@"Three"];
[Array_1 addObject:@"Four"];
[Array_1 addObject:@"Five"];
[Array_1 addObject:@"Six"];
myPickerView_2nd = [[UIPickerView alloc] init];
myPickerView_2nd.frame = CGRectMake(167,70,150,300);
//myPickerView_2nd.tag = i;
myPickerView_2nd.delegate = self;
myPickerView_2nd.showsSelectionIndicator = YES;
[self.view addSubview:myPickerView_2nd];
Array_2 = [[NSMutableArray alloc] init];
// Add some data for demo purposes.
[Array_2 addObject:@"One1"];
[Array_2 addObject:@"Two1"];
[Array_2 addObject:@"Three1"];
[Array_2 addObject:@"Four1"];
[Array_2 addObject:@"Five1"];
[Array_2 addObject:@"Six1"];
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
if([pickerView isEqual: myPickerView]){
// return the appropriate number of components, for instance
return 1;
}
if([pickerView isEqual: myPickerView_2nd]){
// return the appropriate number of components, for instance
return 1;
}
else
return 0;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent: (NSInteger)component {
if ( pickerView == myPickerView) // this is otherPickerview
{
return [Array_1 count];
}
if ( pickerView == myPickerView_2nd){
return [Array_2 count];
}
else{
NSUInteger numRows = 5;
return numRows;}
}
希望这能帮助你……你不应该去if(pickerView.tag==0)
而不是if(i==0)
我已经做过了,但没用。我的意思是在titleForRow方法中,你去if(i==0)
那里没有意义,因为i
甚至没有定义。。除非你省略了一些代码
-(void)viewDidLoad{
myPickerView = [[UIPickerView alloc] init];
myPickerView.frame = CGRectMake(5,70,150,300);
//myPickerView.tag = i;
myPickerView.delegate = self;
myPickerView.showsSelectionIndicator = YES;
[self.view addSubview:myPickerView];
Array_1 = [[NSMutableArray alloc] init];
// Add some data for demo purposes.
[Array_1 addObject:@"One"];
[Array_1 addObject:@"Two"];
[Array_1 addObject:@"Three"];
[Array_1 addObject:@"Four"];
[Array_1 addObject:@"Five"];
[Array_1 addObject:@"Six"];
myPickerView_2nd = [[UIPickerView alloc] init];
myPickerView_2nd.frame = CGRectMake(167,70,150,300);
//myPickerView_2nd.tag = i;
myPickerView_2nd.delegate = self;
myPickerView_2nd.showsSelectionIndicator = YES;
[self.view addSubview:myPickerView_2nd];
Array_2 = [[NSMutableArray alloc] init];
// Add some data for demo purposes.
[Array_2 addObject:@"One1"];
[Array_2 addObject:@"Two1"];
[Array_2 addObject:@"Three1"];
[Array_2 addObject:@"Four1"];
[Array_2 addObject:@"Five1"];
[Array_2 addObject:@"Six1"];
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
if([pickerView isEqual: myPickerView]){
// return the appropriate number of components, for instance
return 1;
}
if([pickerView isEqual: myPickerView_2nd]){
// return the appropriate number of components, for instance
return 1;
}
else
return 0;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent: (NSInteger)component {
if ( pickerView == myPickerView) // this is otherPickerview
{
return [Array_1 count];
}
if ( pickerView == myPickerView_2nd){
return [Array_2 count];
}
else{
NSUInteger numRows = 5;
return numRows;}
}