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

UICollectionView: change the sizeForItemAtIndexPath from within custom cell

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

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

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

我确实理解委托和数据源的概念,但认为单元格是它自己的委托,那么当子视图是 added/removed?

你试过通知中心吗,

[[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

希望这对您有所帮助。 谢谢