在UITableView外显示单元格

时间:2016-08-21 22:33:07

标签: ios swift uitableview

我遇到问题UITableViewCell outside of UITableView但没有正确答案,除了'这不是一个好主意'。

我想在tableView外部加载单元格的contentView(示例情况 - 当用户单击单元格导航到新表视图时,该单元格作为headerView的一部分)。

主题中提出的决议我提供的链接是:

  

我所做的是从其笔尖加载单元格,设置,然后   将单元格的contentView添加到我的新推送视图中。这实现了   大致相同的效果。

我尝试通过MyUITableViewCell()MyUITableViewCell(style:, reuseIdentifier: nil)加载单元格,但每当我尝试调用单元格内的任何对象(例如按钮)时,我都会收到该对象为nil的崩溃,所以这意味着没有从笔尖加载单元格。

我无法通过MyUITableViewCell(nib: nib, bundle: nil)初始化单元格,因为它没有这样的初始化程序。

那么如何在我的任何其他视图中加载单元格的内容?我怎样才能“设置”?

1 个答案:

答案 0 :(得分:4)

要在不使用表格视图的情况下直接从笔尖加载单元格,您需要从主程序包加载它。

目标-C:

CustomClass *cell = (CustomClass *)[[[NSBundle mainBundle] loadNibNamed:@"nibName" owner:self options:nil] firstObject]

夫特:

let cell = NSBundle.mainBundle().loadNibNamed("nibName", owner: self, options: nil).first as! CustomClass

加载后,您仍然需要进行设置并设置单元格的框架并将其添加到superview。然后,您可以像使用任何其他视图一样使用此视图。

init方法不起作用的原因是因为视图永远不会从nib初始化任何IBOutlet,因此所有单元的出口属性都是零。