0

在 UICollectionView 的单元格中使用 UITableViews 是否有任何限制?

我试图找到一些这样做的示例项目,但没有任何运气

4

3 回答 3

4

这是您需要注意的一个问题。如果您的集合视图单元格包含一个表格视图,并且您点击该单元格(而不是表格视图),那么默认情况下,集合视图会将其自身设置为突出显示(对于标准单元格而言,它什么也不做)。但是,在此过程中,它还将表格中的每个单元格设置为突出显示,这很糟糕,但有点意料之中。如果您考虑一下,表格单元格会做同样的事情 - 所有单元格的子视图,如果它们响应setHiglighted,都会将该消息传递给它们。这就是单元格中的标签文本在突出显示时如何改变颜色。

您可以通过防止在集合视图的委托中突出显示单元格来解决此问题。

于 2013-01-24T14:24:16.623 回答
1

没有我知道的硬技术限制。UITableViews 中UITableView的 s 是可能的,并且UICollectionView从编程逻辑的角度来看,s 非常相似。

但是,在集合视图或表格视图中滚动可能会对性能产生巨大影响。

第一的。您需要仔细编码以避免任何肤浅的调用tableView:cellForRowAtIndexPath:collectionView:cellForItemAtIndexPath:方法。如果您在开始冒险之前尝试在集合视图或表格视图中使用可重用单元格,请确保您彻底了解这些调用背后的逻辑。

第二。如果两个组件都是可滚动的,则层次结构中两个视图控制器的 panGestureRecognizers 存在并发问题,您必须自己解决。

搜索UITableViewinside的实现,UIScrollView反之亦然,以了解可能出现的问题。

于 2012-11-16T15:41:16.167 回答
1

我试图找到一些这样做的示例项目

我不认为你需要一个示例项目——去做吧。

-collectionView:cellForItemAtIndexPath:应该返回一个UICollectionViewCell. UITableView 不继承自该类,因此要在集合视图中使用表,您需要创建一个包含 UITableView 的 UICollectionViewCell 子类。除了可能的性能问题之外,我认为这样做没有问题。如果您一次只能在集合视图中看到一两个单元格,那可能不是问题。不过,我会避免尝试用十几个小桌子做网格之类的事情。试一试,看看效果如何。

于 2012-11-20T14:35:09.097 回答