UIPickerView忽略约束

时间:2015-11-09 02:05:17

标签: ios objective-c uipickerview xcode-storyboard

我的应用中有一个UIPickerView视图。设置了委托和数据源,并且选择器正确加载数据,但是,它完全忽略了故事板约束,并且无论我尝试过什么,都会转移到视图的顶部。

下面的屏幕截图显示了故事板中的对齐方式(选择器与蓝色视图的中心垂直/水平对齐(所有边都有30的约束)以及应用程序在6S上运行时的对齐方式。

知道我做错了什么吗? enter image description here

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:2)

UIPickerView有一个繁琐的setFrame实现:-it只允许自己以少数几种大小呈现。控制/克服此问题的最简单方法是将其放在容器视图中,并将约束应用于该视图。您可以覆盖该containerView中的layoutSubviews,以便使选择器居中,甚至可以应用转换来扩展它。不要尝试在此代码中设置选择器视图的大小,只需查询(获取)它然后围绕该值计算。

答案 1 :(得分:1)

删除[self.view addSubview:self.mouthpiecePicker];这是重新添加选择器视图,但它已经添加了Storyboard。当您重新添加它时,它会删除所有约束。