iOS7下使用自定义视图的UIPickerView出现问题

11

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

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view 

在 iOS 6 中看起来还不错。但在 iOS 7 中,情况就不一样了——如下屏幕截图所示。

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

有什么建议吗?

enter image description here


那很奇怪。我已经为测试创建了一个,但一切正常。例如 http://snipt.org/BaIi0/Default。 - Thanh Vũ Trần
4个回答

8
似乎由于某种奇怪的原因,如果任何列的宽度大于选择器视图宽度的1/3,则布局会出现问题。因此,如果您有一个320像素宽的选择器视图,则106或以下的大小是可以工作的,但107或更高的大小则是错误的,无论您是否有2、3、4…个组件。真的很奇怪。

目前我所看到的唯一解决方法是在iOS 7上增加第一个组件的宽度,并减小其他组件的宽度。 - imihaly
谢谢!现在仍然发生。 - Frade

2

正如imihaly在早些时候的帖子中所说,只有当最后一个组件的widthForComponent值超过106像素时才会出现这种情况。其他组件可以返回超过106的值,并且看起来很好。此外,如果您返回的视图宽度比widthForComponent返回的值小,它将居中显示视图,但它将向左偏移大约10个像素。


0

我曾经遇到过类似的问题,但我只是显示了简单的数字。请参见我的类似问题。简短的答案是我不得不将组件分解成不同的UIPickerViews。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接