如何以编程方式在UITableView中添加视图?

时间:2011-12-14 16:33:48

标签: iphone cocoa-touch uitableview uiview ios5

在界面生成器中,将UIView添加到UITable并正确显示,只需拖放即可完成。但现在这将是可选的,因此必须以编程方式放置。

以下是界面构建器中的外观: How it looked like in the Interface Builder

当我将新视图添加为子视图时,它显示在UITableView - 内容之上,但内容应该有一些偏移量。我用以下代码尝试了它:

self.scrollView.frame = CGRectMake(0, -140, self.scrollView.frame.size.width, self.scrollView.frame.size.height);
[self.tableView addSubview:self.scrollView];
[self.tableView setContentInset:UIEdgeInsetsMake(140,0,0,0)];
[self.tableView setContentOffset:CGPointMake(0, -140) animated:NO];

这似乎有效,它显示正确..但是当我向下滚动时,节标题从顶部开始保持在140像素。所以我想我使用了错误的方法,但完全不知道如何修复它。任何人都可以给我一个正确的方向吗?

1 个答案:

答案 0 :(得分:2)

好的,我觉得自己真的很蠢。经过几个小时的尝试,我想到了一些东西..只需检查.xib文件的来源,并将其与子视图与没有的子视图进行比较。出现以下情况:

  • UIViewUITableView
  • 的子视图
  • 添加了以下参考:<reference key="IBUITableHeaderView" ref="204195654"/>

所以,将代码更改为:

[self.tableView addSubview:self.scrollView];
[self.tableView setTableHeaderView:self.scrollView];

它有效!