将UITableView作为子视图添加到另一个UITableView

时间:2015-06-30 18:05:03

标签: ios objective-c uitableview

我是iOS开发的新手。我有一个UITableView(比如TableA),它是另一个UITableView(比如TableB)的子视图。我正在使用自动布局在TableB中定位TableA。现在,这在iOS8上工作正常但是自动布局在iOS7上完全中断,给出了一些NSInternalInconsistencyException。要摆脱这种异常就是停止使用AutoLayout。

我把这个问题带给了一位经验丰富的iOS开发人员,那个人告诉我,我应该将一个子视图添加到UITableView,因为它是一个私有视图。他说,这是完全错误的。现在我并不完全明白为什么会这么错,但我无法进一步问他。我想明白为什么不对。

2 个答案:

答案 0 :(得分:0)

UITableView和UICollectionView是处理所有子视图排列的专用视图。两者都使用“单元格”作为子视图以及主视图背景等。

我不确定你为什么在桌子上有桌子;但我猜你要实现的是将TableB实际放入TableA的单元格中。

创建一个小tableView的XIB并将其用作自定义表格单元格。创建UITableViewCell的子类来处理实现。不知何故,你必须为TableA的单元格内的每个“TableB”提供数据源(并可能委托)。

您可能想问问自己为什么需要桌子内的桌子;通常一个简单的自定义表格单元格可以完成复杂的数据显示 - 甚至带有自定义UICollectionViewLayout的UICollectionView也可以显示一些非常好的表格数据。

答案 1 :(得分:0)

你没有UITableView实现,你不应该通过addSubview方法将子视图添加到它中,因为布局,子视图管理和UITableView完成的所有内部工作。您可以通过委托和dataSource中提供的可扩展性点来修改UITableView的内容。