次のデリゲート メソッドを実装した UIPickerView があります。
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return 2;
}
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
if(!view)
{
view = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 37)] autorelease];
UILabel *label = (UILabel*)view;
label.autoresizingMask = UIViewAutoresizingFlexibleWidth;
label.textAlignment = UITextAlignmentCenter;
label.font = [UIFont boldSystemFontOfSize:24];
label.backgroundColor = [UIColor whiteColor];
view.userInteractionEnabled = NO;
}
((UILabel*)view).text = @"X";
return view;
このコードは iOS 5 で問題なく動作します。つまり、X が付いた 2 行の UIPickerView を取得します。しかし、iOS4 では 3 つのメソッドが呼び出されているにもかかわらず、UIPickerView を表示すると、行が存在しないかのように内部が空白になります。
何か案は?