you cannot mess up alot with uipickerview height, reason being once you change the height you have to readjust each of the row size and the font for each of the row so that they are displayed clearly and separately. There are only three valid heights for UiPickerview (162.0, 180.0 and 216.0). However you can change the height by the following
CGAffineTransform t0 = CGAffineTransformMakeTranslation (0, mypickview.bounds.size.height/2);
CGAffineTransform s0 = CGAffineTransformMakeScale (1.0, 0.5);
CGAffineTransform t1 = CGAffineTransformMakeTranslation (0, -mypickview.bounds.size.height/2);
mypickview.transform = CGAffineTransformConcat (t0, CGAffineTransformConcat(s0, t1));