11

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

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

它在 iOS 6 中看起来不错。在 iOS 7 中,情况并非如此——屏幕截图如下。

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

有什么建议么?

在此处输入图像描述

4

4 回答 4

8

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

于 2013-11-02T15:47:31.600 回答
2

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

于 2013-11-04T22:24:43.903 回答
0

我有一个类似的问题,但我显示的是简单的数字。请参阅我的类似问题。简短的回答是我必须将组件分解为不同的 UIPickerViews。

于 2013-11-07T02:09:09.973 回答
0

正如@imihaly 所提到的,我只有一种解决方案可以增加添加到视图中的选择器视图的宽度。

我创建了一个演示,例如https://github.com/Dharmesh-shah2412/demoPickerView

于 2018-02-09T13:30:52.340 回答