Search code examples
iphoneiosframeuipickerview

UIPickerView Height not changeable


I'm trying to change PickerView's height

self.pickerView = [[UIPickerView alloc] init];
self.pickerView.frame = CGRectMake(0, 0, frame.size.width, frame.size.height);

Xcode log shows the following message:

-[UIPickerView setFrame:]: invalid height value 274.0 pinned to 216.0 

How can I change its height?


Solution

  • here are only three valid heights for UIPickerView (162.0, 180.0 and 216.0).

    You can use the CGAffineTransformMakeTranslation and CGAffineTransformMakeScale functions to properly fit the picker to your convenience.

    Example:

    CGAffineTransform t0 = CGAffineTransformMakeTranslation (0, pickerview.bounds.size.height/2);
    CGAffineTransform s0 = CGAffineTransformMakeScale       (1.0, 0.5);
    CGAffineTransform t1 = CGAffineTransformMakeTranslation (0, -pickerview.bounds.size.height/2);
    pickerview.transform = CGAffineTransformConcat          (t0, CGAffineTransformConcat(s0, t1));
    

    The above code change the height of picker view to half and re-position it to the exact (Left-x1, Top-y1) position.

    Refer more here.