在我的UITableView下面添加一个子视图

时间:2008-12-24 01:09:26

标签: iphone cocoa-touch

我正在尝试以编程方式在我的UITableView下面添加一个子视图。我正在使用Erica Sadun的书中的地图卷曲样本来测试我的UITableView下面的视图是否确实是我正在添加的视图。但是,当UITableView卷曲时,下面视图的视图颜色是白色,而不是我在下面的代码中添加的黑色视图。知道我在UITableView下面插入新视图我做错了吗?

CGRect frame = [self.tableView frame];
NSLog(@"frame height: %f, frame width: %f", frame.size.height, frame.size.width);
NSLog(@"tableView origin: %f, %f", [self.tableView frame].origin.x, [self.tableView frame].origin.y);
NSLog(@"frame origin x: %f, y: %f", frame.origin.x, frame.origin.y);
UIView *pickerView = [[UIView alloc] initWithFrame:frame];
pickerView.backgroundColor = [UIColor blackColor];
pickerView.frame = frame;
pickerView.userInteractionEnabled = YES;

[self.tableView insertSubview:pickerView belowSubview:self.tableView];

此外,我的顶级视图已确认只有两个视图。这是[self.view subviews]的输出:

   2008-12-23 20:44:20.923 MySample[11966:20b] subviews: (
      <UITableView: 0x523ea0>,
      <UINavigationBar: 0x528b10>
   )

1 个答案:

答案 0 :(得分:9)

您正在尝试insertSubview:belowSubview:将视图传回给自己。如果您尝试在表格下方插入子视图,则需要向表格的超级视图发送消息:

[self.tableView.superview insertSubview: pickerView belowSubview: self.tableView];