Iphone iOS 7 UIDatePicker高度不一致?

Iphone iOS 7 UIDatePicker高度不一致?,iphone,ios,uikit,ios7,uistoryboard,Iphone,Ios,Uikit,Ios7,Uistoryboard,在iOS 7中使用UIDatePicker元素和故事板时,我遇到了一些奇怪的事情。在故事板中,日期选择器的固定高度为162。然而,在现实中,该元素占用的空间比这还要大。那么这个 变成这样: 所以我必须把它下面的所有东西都向下移动,猜测和观察日期选择器实际会使用多少空间。这是虫子吗?我做错什么了吗?要明确的是,日期选择器是完全透明的——无法找到解决方法。顶部的白色背景是主UIView,灰色背景是嵌入到容器视图中的UITableView的背景。我可以确认,在故事板中使用UI(日期)选择器的高度(

在iOS 7中使用UIDatePicker元素和故事板时,我遇到了一些奇怪的事情。在故事板中,日期选择器的固定高度为162。然而,在现实中,该元素占用的空间比这还要大。那么这个

变成这样:


所以我必须把它下面的所有东西都向下移动,猜测和观察日期选择器实际会使用多少空间。这是虫子吗?我做错什么了吗?要明确的是,日期选择器是完全透明的——无法找到解决方法。顶部的白色背景是主UIView,灰色背景是嵌入到容器视图中的UITableView的背景。

我可以确认,在故事板中使用
UI(日期)选择器
的高度(162.0)不同于“现实”(216.0)。因此,您必须调整“空间到容器”视图以适应“真实”日期选择器高度,或者尝试使用自动布局解决它。

我刚刚发现了一个有趣的技巧:将
UIDatePicker
放在一个具有162个高度限制的专用视图中(将拾取器顶部和底部的0点垂直约束添加到此新超级视图)。这似乎具有强制拾取器保持162点大小的效果

您可以添加剪切子视图的选项,以确保
UIDatePicker
不会从它的新监狱逃脱

编辑:经过更多测试后,似乎只需向
UIDatePicker
添加162个点的高度约束,它就可以保持其“IB大小”。为了回答@Andrew的评论,下面是它的外观:


您可以通过简单地为UIDatePicker设置宽度和高度约束来更改宽度和高度。我发现,如果不这样做,UIDatePicker的行为会很奇怪。

在我的UIDatePicker对象上将clipsToBounds属性设置为“是”,这对我很有帮助

datePicker.clipsToBounds = YES;
对于XIB,您可以直接勾选剪辑子视图的复选框:


你认为这只是一个bug吗?你试过在控制器上设置edgesForExtendedLayout=UIRectEdgeNone吗?不,我没有。我很久以前就离开了应用程序的这一部分,因为这个问题实际上并没有破坏任何东西(在向下移动其余内容之后))有趣的是,当你试图将iBulder中UIDatePicker的固有大小从默认更改为Height=216时,XCode 5.0.2崩溃了,这不是切断了控制盘的底部吗?它看起来像是被设计成216px。不,它似乎是专门为这个高度重新绘制的。看我的编辑。哇,情节变粗了!谢谢你的编辑;这是有用的信息。这恰好是日历应用程序在横向中使用的高度。似乎苹果公司有一种特殊的情况来处理当时的狭小空间。@pnizzle我的意思是添加一个自动布局约束来强制选取器的高度。希望这更清楚。:-)如果向UIDatePicker添加“等高”的自动布局约束,然后将其删除,则日期选择器的高度将更改为固定为216px。