Web サービスから配列を読み込んでピッカーに表示すると、すべて正常に動作します。私の配列には、質問のカテゴリごとに乱数の質問が含まれています。今私が欲しいのは、ピッカーの最後の行に「あなた自身の質問」が表示されるように、配列の最後に「あなた自身の質問」というエントリをもう1つ追加したいということです。これどうやってするの
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
UILabel *retval = (id)view;
if (!retval) {
retval= [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [pickerView rowSizeForComponent:component].width, [pickerView rowSizeForComponent:component].height)];
}
// retval.text = [idAndNameArray objectAtIndex:row];
if([pickerType isEqualToString:@"picker"])
{
retval.text = [idAndNameArray objectAtIndex:row];
}
else
{
retval.text = [quesArray objectAtIndex:row];
}
retval.font = [UIFont boldSystemFontOfSize:14];
retval.numberOfLines = 3;
return retval;
}
このコードは、Web サービスからフェッチされた行 (質問) の数のみを表示します。
編集1:
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView
{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component
{
if([pickerType isEqualToString:@"picker"])
{
return [idAndNameArray count];
}
else
{
return [quesArray count];
}
}
編集2:
カスタムオブジェクト「あなた自身の質問」で別のNSMutableArrayを作成し、Webサービスから取得した配列を追加することで解決しました
NSMutableArray *customObj = [NSMutableArray arrayWithObject: @"test"];
[quesArray addObjectsFromArray:customObj];