UIPickerView titleForRow not called - View with two pickers
I开发者_开发知识库'm currently working on a single View with two pickerViews.
I've found something like :- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component
{
if([thePickerView isEqual:pickerView ]){
return [arrayNo count];
}
else if([thePickerView isEqual:pickerView2]){
return [arrayRootNote count];
}
else{
return 0;
}
}
- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
if([thePickerView isEqual:pickerView])
{
return [arrayNo objectAtIndex:row];
}
else if([thePickerView isEqual:pickerView2]){
return [arrayRootNote objectAtIndex:row];
}
else{
return [arrayRootNote objectAtIndex:row];
}
NSLog(@"I am a called method");
}
What I want is to change the title of each picker (populated by the two NSMutableArrays). The problem is that the two pickers are showing the "ArrayNo" of the pickerView.
I've found with the debugger (and the NSLog) that the method titleForRow is not called at all.
Any idea? Thanks in advanceSéraphin
did u set delegate/data source?
Problem Solved :
viewForRow, I needed to change the custom label I did :
- (UIView *)pickerView:(UIPickerView *)thePickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{
CGRect rect = CGRectMake(0, 0, 188.25, 70.4);
UILabel *label = [[UILabel alloc]initWithFrame:rect];
CGAffineTransform rotate = CGAffineTransformMakeRotation(3.14/2);
rotate = CGAffineTransformScale(rotate, 0.22, 1.7);
[label setTransform:rotate];
//label.text = [arrayNo objectAtIndex:row]; THAT was the error.
if([thePickerView isEqual:pickerView]) THAT is the solution.
{
label.text = [arrayNo objectAtIndex:row];
}
else if([thePickerView isEqual:pickerView2]){
label.text = [arrayRootNote objectAtIndex:row];
}
label.font = [UIFont fontWithName:@"Georgia" size:50];
label.textAlignment = UITextAlignmentCenter;
label.numberOfLines = 2;
label.lineBreakMode = UILineBreakModeWordWrap;
label.backgroundColor = [UIColor clearColor];
label.clipsToBounds = YES;
return label ;
}
精彩评论