默认UIPickerView高度

时间:2011-05-02 09:52:13

标签: iphone size uipickerview

如何根据应用当前正在运行的设备的分辨率和方向以编程方式获取UIPickerView实例的默认高度?

如果新设备支持不同的屏幕分辨率,我希望不对此参数使用硬编码值,从而确定此组件具有不同的默认大小。

4 个答案:

答案 0 :(得分:15)

André看到的警告似乎不再发生(XCode 4.2; iOS SDK 5.0)。如果您使用initWithFrame创建它并将其高度设置为零,则可以从frame.height属性读回它的高度:

uiPickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 77, 320, 0)];
DLog(@"uiPickerView=%@",uiPickerView);

给出:

uiPickerView=<UIPickerView: 0x9a28c40; frame = (0 77; 320 216); layer = <CALayer: 0x9a28d00>>

所以216是默认高度。

我在标题中找不到这个的定义,所以回读它似乎是最安全的方法。

可以设置一个非零高度的帧,但Apple说不这样做,它似乎会导致渲染问题。

答案 1 :(得分:1)

如果您创建一个高度为0的实例,它将被覆盖并使用相应的默认高度,您只需获取其frame.size.height

但是,在iPad上会发出警告(几天前测试过)。我最终不得不使用iPad的硬编码值...

P.S。这是一个UIDatePicker;不确定UIPickerView是否完全相同。

答案 2 :(得分:1)

对于自动布局,我想知道同样的事情,因为你无法固定它的底部。

UIPickerView没有更改的默认高度为216px ** UIPickerView**

答案 3 :(得分:-1)

您可以使用uipickerview的frame属性。