UIPickerにかなり複雑な行を作成したいと思います。私が見たすべての例は、そのようにゼロからビューを作成します...
- (UIView *) pickerView:(UIPickerView *)pickerView
viewForRow:(NSInteger)row
forComponent: (NSInteger)component reusingView:(UIView *)view
{
CGRect cellFrame = CGRectMake(0.0, 0.0, 110.0, 32.0);
UIView *newView = [[[UIView alloc] initWithFrame:cellFrame] autorelease];
newView.backgroundColor = [UIColor colorWithRed:1.0 green:0.0 blue:1.0 alpha:1.0];
return newView;
}
これは基本的に機能し、ピッカーに紫色の長方形が表示されます。
しかし、私はそのようにNIBファイルからpickerViewアイテムをロードできるようにしたいと思います...
- (UIView *) pickerView:(UIPickerView *)pickerView
viewForRow:(NSInteger)row
forComponent: (NSInteger)component reusingView:(UIView *)oldView
{
NSArray * nibs = [[NSBundle mainBundle] loadNibNamed:@"ExpenseItem" owner:self options:nil];
UIView *newView = [nibs objectAtIndex:0];
return newView;
}
これにより、空白の白い画面が生成され、ピッカーも表示されなくなります。私はそれを最初の方法で実行し、コードでサブビューを構築することができますが、明らかに私が理解していないことがここで起こっています。誰か知っていますか?