UIPicker的高度

3

我一直在尝试更改pickerView的高度。我想让它只显示一行,而不是默认的五行。

帮帮我吧。

5
仅在一行滚动将会异常困难。 - BoltClock
4个回答

5
更好的方法是使用这样的PickerView框架:
    Pickerview.frame = CGRectMake(30,100,170,200);

alt text


1
有人给我点了踩,是什么原因呢?如果有任何意见,请在评论中告诉我。 - Suresh D
1
我没有给你点踩,但是你没有解决问题:“我想让它显示一行。” - TigerCoding

2
您无法实现。 UIPickerView 可以显示5行或3行,这取决于您传递给 -setFrame: 方法的框架高度。当我需要一个短的 UIPickerView 时,我会传递一个高度为100。UIKit中的代码将调整该高度以使其成为最接近的允许值。
我还要指出这是有很好原因的。正如其他地方已经指出的那样,一行选择器将非常难以滚动。此外,可见行数必须是奇数,以便当前选定的行在垂直居中。这意味着3行或5行,因为7行会使iPhone上的东西太高而不实用。
另外,这也适用于UIDatePicker,原因相同。例外情况是当日期选择器处于UIDatePickerModeCountDownTimer中时,它不支持3行变体。

2
如果你确实必须要有一个单行选择器视图:
创建一个大小为170宽,55高的UIView。
将视图属性设置为clip subviews = YES。
将UIPickerView添加为UIView的子视图。将其原点设置为0,-80.5。
然后将一个大小为170,55的UIImageView作为UIView的子视图添加。将其图像设置为下面显示的图像。
(您可以修改图像并使其可伸缩以水平调整大小)
最终结果:
只有一行选择器视图

-1

你尝试过实现numberOfRowsInComponent:吗?如果这不改变大小,你尝试设置选择器的框架了吗?

附注:我同意@Ritheesh@BoltClock的看法,只有一行并不是一个好主意。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接