How do I change the text size and component width of a UIPickerView?

前端 未结 1 1517
北海茫月
北海茫月 2020-12-13 15:29

I have the following code to create a UIPickerView:

pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0f, 416.0f - height, 320.0f, height)];
pic         


        
相关标签:
1条回答
  • 2020-12-13 16:13

    You can change the width by an appropriate delegate method

    - (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;
    }
    

    As for a custom text size, you can use the delegate to return custom views with whatever sized text you want:

    - (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;
    }
    

    Of course you will need modify these to have appropriate values for your app, but it should get you where you need to go.

    0 讨论(0)
提交回复
热议问题