2012-10-13 67 views
1

我有一个使用UICollectionViewDelegateFlowLayout的UICollectionView。我添加了一种方法,可以在单击单元格setCollectionViewLayout时更改布局。UICollectionView更改布局 - 更改单元格

所有的单元格都有文本标签,我想在更改布局时清空每个单元格上的所有文本标签。什么是最好的方式来实现这一目标?

感谢,

回答

3

我可以想象的最简单的方法就是在您更改布局,同时在您的收藏查看通话reloadData(并有一个条件在清空文本标签您cellForItem数据源方法在每次布局改变时)。

或者,您可以让您的UICollectionViewCells跟踪当前显示的布局,并相应地调整其视图。

+0

谢谢你。我使用了[[[self collectionView] collectionViewLayout] isKindOfClass:[CircleLayout class]],效果很好。不知道这是否是最好的方法。现在唯一的问题是布局之间的动画并不真正起作用,因为我调用了reloadData。 – Mikael

+0

我建议的第二种方法可能会更好地工作,并保留布局之间的动画 - 唯一的缺点是实施起来会有点困难。当你的布局改变时,你可能想尝试触发一个'NSNotification',让你的单元监听它。这样你永远不必重新加载它们,动画应该保持。 – lxt

+0

是的,这可能是要走的路。谢谢。在附注中,我试图让我的收藏查看功能与iPad上的照片应用类似。你认为苹果使用了一个collectionview,只改变了布局吗?也许我应该为此提出第二个问题。 – Mikael