iOS7中已断开自定义视图的UIPickerView

iOS7中已断开自定义视图的UIPickerView,ios,ios7,uipickerview,uipickerviewcontroller,Ios,Ios7,Uipickerview,Uipickerviewcontroller,我有一个带有UIPickerView的应用程序。我正在使用该方法返回一个自定义视图 - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view 在iOS 6中看起来不错。在iOS 7中,没有这么多——下面是屏幕截图 请注意,在没有焦点的单元格中,第二列和第三列重叠。中间一行是正确的

我有一个带有UIPickerView的应用程序。我正在使用该方法返回一个自定义视图

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view 
在iOS 6中看起来不错。在iOS 7中,没有这么多——下面是屏幕截图

请注意,在没有焦点的单元格中,第二列和第三列重叠。中间一行是正确的

有什么建议吗


似乎出于一个奇怪的原因,如果任何列的宽度大于选择器视图宽度的1/3,布局就会中断。所以,如果你有一个320像素宽的选取器,106或更少的视图工作,但107或更高的视图是错误的,不管你有2,3,4。。。组件。真的很奇怪。

正如Imahaly在他之前的帖子中所说,看起来只有当最后一个组件的widthForComponent值超过106像素时才会发生这种情况。其他组件可以返回一个大于106的值,看起来很好。此外,如果返回的视图的宽度小于widthForComponent返回的值,它将使视图居中,但向左偏移约10个像素。

我也有类似的问题,但我显示的是简单的数字。看见简短的回答是,我必须将组件分解为不同的UIPickerView。

正如@imahaly所提到的,只有一种解决方案可以增加添加到视图中的picker视图的宽度


我已经创建了一个类似于

的演示,到目前为止,我看到的唯一解决方法是在iOS 7上增加第一个组件的宽度,减少其他组件的宽度。谢谢!现在还是这样,真奇怪。我已经创建了一个测试它。但一切都很好。例子。