我的导航堆栈上有一个分组样式UITableView
,当我点击一个单元格时,我将UIDatePicker
推到堆栈上。问题是我希望这个自定义视图具有与我的表视图相同的背景颜色。
我尝试设置自定义视图的背景颜色,如:
datePicker.backgroundColor = [UIColor groupTableViewBackgroundColor];
但这是透明的。我还尝试修改基础CGColor
对象的alpha为1.0,这导致背景颜色为黑色。
以下 按预期工作:
datePicker.backgroundColor = [UIColor lightGrayColor];
但是,当然,这种颜色与分组的表背景颜色不完全匹配。
我是否认为这一切都错了?我发现了一篇关于此here的类似帖子,但没有有用的回复。
答案 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];
刷新表。