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

时间:2013-10-30 02:53:44

标签: ios ios7 uipickerview uipickerviewcontroller

我有一个带有UIPickerView的应用程序。我正在使用方法

返回自定义视图
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view 

在iOS 6中显得很好。在iOS 7中,没有那么多 - 下面的屏幕截图。

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

有什么建议吗?

enter image description here

4 个答案:

答案 0 :(得分:8)

似乎由于一个奇怪的原因,如果任何列的宽度高于拾取器视图宽度的1/3,则布局会中断。因此,如果你有一个320像素宽的选择器视图106或更少工作,但107或更高是错误的,无论你有2,3,4 ...组件。真奇怪。

答案 1 :(得分:2)

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

答案 2 :(得分:0)

我有类似的问题,但我正在显示简单的数字。见my similar question。简短的回答是我必须将组件拆分为不同的UIPickerViews。

答案 3 :(得分:0)

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

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

的演示版