如何以编程方式在 UITableView 中添加视图?
Posted
技术标签:
【中文标题】如何以编程方式在 UITableView 中添加视图?【英文标题】:How to add a view inside an UITableView programmatically? 【发布时间】:2011-12-14 16:33:47 【问题描述】:在 Interface Builder 中,很容易将 UIView
添加到 UITable
并正确显示它,只需拖放即可完成。但现在这将是可选的,因此必须以编程方式放置。
界面生成器中的外观如下:
当我将新视图添加为子视图时,它显示在 UITableView
-content 的顶部,但内容应该有一些偏移。我用下面的代码试了一下:
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】:好吧,我觉得我真的很愚蠢。经过几个小时的尝试,我想到了一些东西。刚刚检查了 .xib 文件的来源,并将带有子视图的那个与没有的比较。出现以下情况:
UIView
是UITableView
的子视图的一部分。
添加了以下参考:<reference key="IBUITableHeaderView" ref="204195654"/>
。
所以,把代码改成这样:
[self.tableView addSubview:self.scrollView];
[self.tableView setTableHeaderView:self.scrollView];
而且它有效!
【讨论】:
你的意思是自动把你添加到tableView.HeaderView的视图转过来? 必须将tableHeaderView
属性设置为我的标题视图。不知道addSubview:
是否需要,有可能不需要。以上是关于如何以编程方式在 UITableView 中添加视图?的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式在 UITableView 上添加 UIView
如何以编程方式在 UITableView 后面添加静态背景?