0

行のピッカー ビュー オブジェクトの色を変更する方法はありますか?

たとえば、addobject:@"black"フォントの色を赤に変更する方法はありますか?

4

1 に答える 1

1

「タイトル」デリゲート メソッドを使用する代わりに、UIView メソッドを使用し、独自のビューを作成して設定します。したがって、幅 320、高さ 44 の UIView を作成し、ラベルを配置し、ラベルのテキストと色を設定すると、まさに必要なものが得られます。

編集:

#define PICKER_VIEW_SIZE CGSize(300, 40)

- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component
{
    return PICKER_VIEW_SIZE.height;
}

- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component
{
    return PICKER_VIEW_SIZE.width;
}

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
    // assume one component, but this solutions works for multiple
    // lets do red, green, and blue alternating backgrounds with alternating black and white text

    UIColor *backgroundColor;
    switch(row % 3) {
    case 0:
    default:
        backgroundColor = [UICOlor redColor];
        break;
    case 1:
        backgroundColor = [UIColor blueColor];
        break;
    case 2:
        backgroundColor = [UIColor greenColor];
        break;
    }
    UIColor *textColor = (row % 2) ? [UIColor blackColor] : [UIColor whiteColor];

    UIView *view = [[UIView alloc] initWithFrame:(CGRect){ {0,0}, PICKER_VIEW_SIZE}];
    view.backgroundColor = backgroundColor;

    UILabel *label = [UILabel alloc] initWithFrame:CGRectMake(10, 10, 200, 20)];
    // configure the label
    label.text = text appropriate for this row;

    [view addSubview:label];

    return view;
}
于 2012-08-23T21:43:34.717 に答える