UIPicker的高度

时间:2010-12-17 11:46:53

标签: iphone objective-c

我一直在尝试更改pickerView的高度。我希望它显示一行而不是默认的五行。 帮帮我PLZ

4 个答案:

答案 0 :(得分:5)

更好的是你可以像这样使用PickerView Frame,

    Pickerview.frame = CGRectMake(30,100,170,200);

alt text

答案 1 :(得分:2)

你做不到。 UIPickerView可以显示5行或3行,具体取决于传递给-setFrame:方法的帧的高度。当我需要一个短UIPickerView时,我将传递100的高度.UIKit中的代码会将该高度调整为最接近的允许值。

我还会注意到这是有充分理由的。如其他地方所述,一行pickerView将非常难以滚动。此外,可见行的数量必须为奇数,以便当前选定的行将垂直居中。这意味着3或5行,因为7会使事情太高而不能在iPhone上实用。

顺便说一下,出于同样的原因,这也适用于UIDatePicker。例外情况是日期选择器位于UIDatePickerModeCountDownTimer,不支持3行变体。

答案 2 :(得分:2)

如果你绝对必须有一行选择器视图:

创建一个大小为170宽,55高的UIView。

设置视图属性clip subviews = YES

添加UIPickerView作为UIView的子视图。将其原点设置为0,-80.5。

然后将UIImageView大小为170,55作为子视图添加到UIView中。将其图像设置为如下所示。

transparent uipickerview frame

(您可以修改图像并使其可伸缩以水平调整大小)

最终结果:

single row picker view

答案 3 :(得分:-1)

您是否尝试实施numberOfRowsInComponent:?如果这不会改变大小,你是否试图设置选择器的框架?

ps:我同意 @Ritheesh @BoltClock,一行不是个好主意