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