iOS 6上每个组件的UIPickerView固定标签问题

iOS 6上每个组件的UIPickerView固定标签问题,ios,objective-c,uipickerview,Ios,Objective C,Uipickerview,我想显示一个UIPickerView,其中包含每个组件的一些硬编码文本。比如“小时”和“分钟”。现在,我可以通过创建标签并将其作为子视图放置到picker视图来实现这一点。这在iOS 7及以上版本中运行良好 但对于iOS 6,我的标签被UIPickerView组件重叠,因此它们不可见。如何实现iOS 6的此视图,其中每个组件的值都标记为固定标签,以便用户知道他们在选择什么。我认为您可以通过构建包含选择器视图和标签的自定义视图来实现此目的 为了他人的利益,我就是这样做到的(基于Frog的建议):

我想显示一个
UIPickerView
,其中包含每个组件的一些硬编码文本。比如“小时”和“分钟”。现在,我可以通过创建标签并将其作为子视图放置到picker视图来实现这一点。这在iOS 7及以上版本中运行良好


但对于iOS 6,我的标签被
UIPickerView
组件重叠,因此它们不可见。如何实现iOS 6的此视图,其中每个组件的值都标记为固定标签,以便用户知道他们在选择什么。

我认为您可以通过构建包含选择器视图和标签的自定义视图来实现此目的

为了他人的利益,我就是这样做到的(基于Frog的建议):

只要使用,当我需要一个自定义选择器时,我总是使用它。它与iOS6+完美配合

以下是如何将其用于字符串选择器:

NSArray *colors = [NSArray arrayWithObjects:@"Hours", @"Mins", @"Whatever", @"More", nil];

[ActionSheetStringPicker showPickerWithTitle:@"Select a Color"
                                        rows:colors
                            initialSelection:0
                                   doneBlock:^(ActionSheetStringPicker *picker, NSInteger selectedIndex, id selectedValue) {
                                      NSLog(@"Picker: %@, Index: %@, value: %@", 
                                      picker, selectedIndex, selectedValue);
                                    }
                                 cancelBlock:^(ActionSheetStringPicker *picker) {
                                      NSLog(@"Block Picker Canceled");
                                    }
                                      origin:sender];

享受吧

我很好奇你为什么在此时尝试支持iOS 6。现在已经过时了。它的外观和感觉与iOS 7+完全不同。我的客户端仍在使用iOS 6,因此我必须支持。只需将标签放在选择器视图上方。我尝试将选择器组件放在这些标签上方。我想我必须告诉选取器在其子视图的顶部插入标签。不,将标签放在选取器的上方(较小的y值),而不是放在选取器的前面。是的,这听起来像是一个解决方案。让我试试。
NSArray *colors = [NSArray arrayWithObjects:@"Hours", @"Mins", @"Whatever", @"More", nil];

[ActionSheetStringPicker showPickerWithTitle:@"Select a Color"
                                        rows:colors
                            initialSelection:0
                                   doneBlock:^(ActionSheetStringPicker *picker, NSInteger selectedIndex, id selectedValue) {
                                      NSLog(@"Picker: %@, Index: %@, value: %@", 
                                      picker, selectedIndex, selectedValue);
                                    }
                                 cancelBlock:^(ActionSheetStringPicker *picker) {
                                      NSLog(@"Block Picker Canceled");
                                    }
                                      origin:sender];