2

在此处输入图像描述

如何实现这样的选择器视图?我已经实现了所有必要的委托和数据源方法来填充数据,但我无法理解的是如何添加这个标题成人儿童婴儿?它们是静态的,不会随组件旋转!

4

5 回答 5

1

我只是使用 Interface Builder 完成了这项工作。

我创建了一个容器视图,然后将选择器视图放入其中。为了确保我的容器大小与选取器视图相同,我设置了空间限制:前导、尾随、顶部和底部。

然后我在选择器视图上方放置了 3 个标签(但它们仍然是容器的子视图)并将它们的框架设置为居中。

也为了实现与屏幕截图相同的标签视觉效果(它似乎在选择栏下),将标签的 alpha 降低到大约 0.7。

于 2014-07-29T16:31:20.430 回答
1

您可以将标签放在特定的框架位置,然后将标签背景颜色设置为 clearColor。

于 2013-02-07T07:06:30.683 回答
1

当您显示选择器视图时,将 3 个标签作为子视图添加到您的视图中,然后在选择器关闭时隐藏它们。

您必须将标签放置在表带上。

于 2013-02-07T07:08:35.050 回答
0

您需要添加标签作为选择器视图的子视图。UIPickerView 中没有内置任何功能来简化此操作。

于 2013-02-07T07:01:18.580 回答
0

创建您的选择器,创建一个带有阴影的标签,然后将其推送到 selectionIndicator 视图下方的选择器子视图。

它看起来像这样

UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(135, 93, 80, 30)] autorelease];
label.text = @"Label";
label.font = [UIFont boldSystemFontOfSize:20];
label.backgroundColor = [UIColor clearColor];
label.shadowColor = [UIColor whiteColor];
label.shadowOffset = CGSizeMake (0,1);
[picker insertSubview:label aboveSubview:[picker.subviews objectAtIndex:5]]; 
//When you have multiple components (sections)...
//you will need to find which subview you need to actually get under
//so experiment with that 'objectAtIndex:5'
//
//you can do something like the following to find the view to get on top of
// define @class UIPickerTable;
// NSMutableArray *tables = [[NSMutableArray alloc] init];
// for (id i in picker.subviews) if([i isKindOfClass:[UIPickerTable class]]) [tables addObject:i];
// etc...
于 2013-02-07T07:09:11.487 回答