Как изменить размер текста и ширину компонента UIPickerView? - PullRequest
15 голосов
/ 02 ноября 2008

У меня есть следующий код для создания UIPickerView:

pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0f, 416.0f - height, 320.0f, height)];
pickerView.delegate = self;
pickerView.showsSelectionIndicator = YES;
[pickerView setSoundsEnabled:YES];

Я хотел бы изменить ширину компонента и изменить размер текста в каждом компоненте. Возможно ли это сделать?

Спасибо!

1 Ответ

50 голосов
/ 02 ноября 2008

Вы можете изменить ширину с помощью соответствующего метода делегата

- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component {
    switch(component) {
        case 0: return 22;
        case 1: return 44;
        case 2: return 88;
        default: return 22;
    }

    //NOT REACHED
    return 22;
}

Что касается нестандартного размера текста, вы можете использовать делегата для возврата настраиваемых представлений с любым размером текста, который вы хотите:

- (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)] autorelease];
        }

        retval.text = @"Demo";
        retval.font = [UIFont systemFontOfSize:22];
        return retval;
}

Конечно, вам нужно изменить их, чтобы они соответствовали значениям для вашего приложения, но оно должно привести вас туда, куда вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...