UICollectionView:从自定义单元格中更改sizeForItemAtIndexPath

时间:2015-01-23 12:01:21

标签: ios swift uicollectionview

关于模型 - 视图 - 控制器(MVC)的一个非常基本的问题。

我有一个自定义的UICollectionView填充了自定义UICollectionViewCells。集合视图定义UICollectionViewDelegateFlowLayout方法collectionView: sizeForItemAtIndexPath中单元格的大小。同时,通过自定义集合单元视图控制器添加和删除子视图。

我的问题:在单元格的视图控制器中添加或删除子视图时,如何告诉集合视图控制器更改高度?

我确实理解委托和数据源概念,但是认为单元格是它自己的委托,所以当子视图时,消息('将高度更改为......')如何从单元格传递到集合视图控制器添加/删除?

1 个答案:

答案 0 :(得分:2)

您是否尝试过使用通知中心,

[[NSNotificationCenter defaultCenter] postNotificationName:@"AddedSubViewToCell" object:self];

并在集合视图控制器的viewDidLoad中,

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(addedSubViewToCell:) name:@"AddedSubViewToCell" object:nil];

然后实现选择器

- (void)addedSubViewToCell:(NSNotification:)notificationObject
{
     //change frame of collection view
     //don't forget to remove observer
}

有关NSNotificationCenter的详细说明,请参阅此Tutorial

希望这会有所帮助。 感谢