UIPickerView在iOS7中打破了自定义视图

我有一个带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 …组件。 真奇怪。

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

我有一个类似的问题,但我正在显示简单的数字。 看到我的类似问题 。 简短的回答是我不得不将组件分解成不同的UIPickerViews。

正如@imihaly所提到的,我只想出一个解决方案来增加选择器视图的宽度,这将被添加到视图中。

我创建了一个类似https://github.com/Dharmesh-shah2412/demoPickerView的演示