0

次のデリゲート メソッドを実装した 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 を表示すると、行が存在しないかのように内部が空白になります。

何か案は?

4

2 に答える 2

1

ありがとう、私は同じ問題を抱えていました。フレームサイズを変更するだけで解決しました。

于 2012-10-04T19:25:44.613 に答える