UIPickerView 中中心行的静态视图

Posted

技术标签:

【中文标题】UIPickerView 中中心行的静态视图【英文标题】:Static view for center row in a UIPickerView 【发布时间】:2014-03-30 08:45:19 【问题描述】:

我有一个 pickerView,我通过 viewForRow 委托方法向每一行添加一个自定义视图。这里的目标是为中心(选定)行提供不同的视图,例如高亮视图,同时 pickerView 旋转(中心静态视图)。任何帮助将不胜感激..

【问题讨论】:

【参考方案1】:

ios 7 中,您可以向UIPickerView 添加子视图。在早期版本中,这将是一个非常痛苦的操作,因为UIPickerView 将有一个边框等,所以您可能需要一个自定义的类似选择器的实现。

对于 iOS 7,您可以使用以下内容:

CGFloat rowHeight = 100;  // rowHeight of your picker view, i assumed your rowHeight equals to 100

// Create a custom view, centered vertically in your picker view
UIView * view = [[UIView alloc] initWithFrame:CGRectMake(0,
                                                         (pickerView.bounds.size.height - rowHeight)/2,
                                                         pickerView.bounds.size.width,
                                                         rowHeight)];
[view setBackgroundColor:[UIColor clearColor]];

// Do some highlighting operations
[view.layer setCornerRadius:5.0];
[view.layer setBorderColor:[UIColor blueColor].CGColor];
[view.layer setBorderWidth:5.0];

[pickerView addSubview:view];

【讨论】:

哦,我明白了它背后的想法。你认为有一种方法可以在设置选中之前调整视图中的行的 customView 吗?因为要选择一行,它必须停止滚动动画。例如更改 customView 中的字体或颜色或文本大小。我的意思是在滚动时 您可以尝试继承 UIPickerView 并覆盖 selectRow:inComponent:animated: 方法。调用super后,也许你就可以自定义你的视图了。

以上是关于UIPickerView 中中心行的静态视图的主要内容,如果未能解决你的问题,请参考以下文章

记一次 UIPickerView 无法滚动的问题。

在 uitableviewcell 中自定义 uipickerview

用UIPickerView来显示省和市

将 CoreData 对象的字符串属性加载到 UIPickerView

安卓按键:静态界面的多选框变成单选框

UIPickerVIew viewForRow 中的重用视图:丢失其子视图?