UITableView 添加子视图
Posted
技术标签:
【中文标题】UITableView 添加子视图【英文标题】:UITableView add subview 【发布时间】:2011-10-12 07:59:37 【问题描述】:我想在UITableView
中添加子视图
我试过这样:
[self.tableView addSubView:myView.view];
我没有收到任何错误,但没有添加视图,谁能帮忙..?
谢谢。
【问题讨论】:
如果 myView 是 UIView 类型,那么只需 [self.tableView addSubView:myView]; 什么是myView?它是 UIViewController 还是 UIView 的子类 我创建了 UIView 的对象并添加到 tableview 的子视图中 那么你应该这样写...[self.tableView addSubView:myView] 我已经在我的 cmets 中添加了我已经成功完成我的任务仍然感谢您的时间。 【参考方案1】:试试这个:
view.frame = CGRectMake(view.frame.origin.x, -view.frame.size.height, view.frame.size.width, view.frame.size.height);
[self.tableView addSubview:view];
[self.tableView setContentInset:UIEdgeInsetsMake(view.frame.size.height, 0, 0, 0)];
这将在单元格上方添加视图,并将单元格向下移动添加视图的高度。
【讨论】:
【参考方案2】:我不明白您为什么要向 Tableview 添加子视图。可能是您想为 tableView 的每个单元格添加一些内容。您可以通过添加:
[cell.contentView addSubview:yourSubView];
在
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
【讨论】:
现在它工作正常实际上我必须在表格视图中间添加指示器,背景为透明视图,但现在它工作正常感谢您的回答【参考方案3】:self.tableView
和 myView
都不应该是 nil
myView.view
是什么意思?
这段代码对我很有用:
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 200)];
UILabel *labelView = [[UILabel alloc] initWithFrame:CGRectMake(20, 80, 200, 20)];
labelView.text = @"TEST";
[headerView addSubview:labelView];
[self.tableView addSubview:headerView];
【讨论】:
【参考方案4】:对于斯威夫特:
let foregroundView = UILabel(frame: CGRectMake(0, 0, tableView.bounds.size.width, tableView.bounds.size.height))
foregroundView.backgroundColor = UIColor.whiteColor()
tableView.addSubview(foregroundView)
foregroundView.bringSubviewToFront(tableView)
你也可以删除它:
foregroundView.removeFromSuperview()
【讨论】:
【参考方案5】:只需将您的代码行替换为以下代码:
[self.tableView.superview addSubview:myView];
注意:
我不确定您在问题中提到的代码行中的myView.view
。
【讨论】:
tableView.superview 为零以上是关于UITableView 添加子视图的主要内容,如果未能解决你的问题,请参考以下文章
如何将 UITableView 作为子视图添加到 xib 中的 UIView?