UIColor groupTableViewBackgroundColor是透明的

时间:2010-12-28 03:03:35

标签: cocoa-touch ipad uitableview ios uicolor

我的导航堆栈上有一个分组样式UITableView,当我点击一个单元格时,我将UIDatePicker推到堆栈上。问题是我希望这个自定义视图具有与我的表视图相同的背景颜色。

我尝试设置自定义视图的背景颜色,如:

datePicker.backgroundColor = [UIColor groupTableViewBackgroundColor];

但这是透明的。我还尝试修改基础CGColor对象的alpha为1.0,这导致背景颜色为黑色。

以下 按预期工作:

datePicker.backgroundColor = [UIColor lightGrayColor];

但是,当然,这种颜色与分组的表背景颜色不完全匹配。

我是否认为这一切都错了?我发现了一篇关于此here的类似帖子,但没有有用的回复。

1 个答案:

答案 0 :(得分:1)

你是什么意思“将UIDatePicker推入堆栈”?为什么不尝试将UIDatePicker设置为视图动画?

加载视图时,创建选择器并将帧设置为关闭屏幕,例如

    [picker setFrame:CGRectMake(0,960,320,216)];
然后,而不是“推”选择器,将其设置为视图,如:

    [UIView beginAnimations:nil context:NULL];
    [picker setFrame:CGRectMake(0,200,320,216)];
    [UIView commitAnimations];

当你想要解雇选择器时,只需将其隐藏起来:

    [UIView beginAnimations:nil context:NULL];
    [picker setFrame:CGRectMake(0,960,320,216)];
    [UIView commitAnimations];

如果需要,您还可以添加一个带有“完成”按钮的工具栏来关闭选择器,对我来说很有用。

如果要在表格中显示选择器的内容,则可以在该动画序列中设置表格的框架。在第一个中,使表格的大小减半(就像我的例子中的150个工作完美),然后在隐藏序列中,使表格成为原始大小(本例中为415)。当您隐藏选择器时,请调用[tableView reloadData];刷新表。