我该如何以编程方式获取UIPickerView实例的默认高度,以符合应用当前运行设备的分辨率和方向?
我不希望为此参数使用硬编码值,因为新设备可能支持不同的屏幕分辨率,从而确定此组件具有不同的默认大小。
我该如何以编程方式获取UIPickerView实例的默认高度,以符合应用当前运行设备的分辨率和方向?
我不希望为此参数使用硬编码值,因为新设备可能支持不同的屏幕分辨率,从而确定此组件具有不同的默认大小。
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。
在标题中我找不到对此的定义,因此最安全的方法似乎是读取它。
可以设置非零高度的框架,但苹果公司建议不要这样做,因为它可能会导致渲染问题。
如果您创建一个高度为0的实例,它将被覆盖为适当的默认高度,并且您可以使用frame.size.height
来获取其高度。
然而,在iPad上,这将会发出一个警告(几天前测试)。我最终不得不为iPad使用硬编码值...
P.S. 这是针对UIDatePicker的;不确定UIPickerView是否完全相同。