我的应用中有一个UIPickerView视图。设置了委托和数据源,并且选择器正确加载数据,但是,它完全忽略了故事板约束,并且无论我尝试过什么,都会转移到视图的顶部。
下面的屏幕截图显示了故事板中的对齐方式(选择器与蓝色视图的中心垂直/水平对齐(所有边都有30的约束)以及应用程序在6S上运行时的对齐方式。
答案 0 :(得分:2)
UIPickerView有一个繁琐的setFrame实现:-it只允许自己以少数几种大小呈现。控制/克服此问题的最简单方法是将其放在容器视图中,并将约束应用于该视图。您可以覆盖该containerView中的layoutSubviews,以便使选择器居中,甚至可以应用转换来扩展它。不要尝试在此代码中设置选择器视图的大小,只需查询(获取)它然后围绕该值计算。
答案 1 :(得分:1)
删除[self.view addSubview:self.mouthpiecePicker];
这是重新添加选择器视图,但它已经添加了Storyboard。当您重新添加它时,它会删除所有约束。