导致可见性问题的动态大小collectionView单元格-iOS
我有一个3列多行的集合视图。在my导致可见性问题的动态大小collectionView单元格-iOS,ios,objective-c,dynamic,uicollectionview,cgsize,Ios,Objective C,Dynamic,Uicollectionview,Cgsize,我有一个3列多行的集合视图。在mySizeFormiteIndeXPath中,我返回一个动态的CGSize,如下所示: return CGSizeMake(_sponsoredCollectionView.frame.size.width/3 - 7, (_sponsoredCollectionView.frame.size.width/3 - 7 + nameHeight + cuisineHeight + addressHeight + timingHeight + paddings));
SizeFormiteIndeXPath
中,我返回一个动态的CGSize
,如下所示:
return CGSizeMake(_sponsoredCollectionView.frame.size.width/3 - 7, (_sponsoredCollectionView.frame.size.width/3 - 7 + nameHeight + cuisineHeight + addressHeight + timingHeight + paddings));
[_sponsoredCollectionView reloadData];
dispatch_async(dispatch_get_main_queue(), ^{
[self.sponsoredCollectionView performBatchUpdates:^{
_sponsoredCollectionViewHeightConstraint.constant = _sponsoredCollectionView.collectionViewLayout.collectionViewContentSize.height + 5;//_sponsoredCollectionView.contentSize.height + 5;
} completion:nil];
});
但在上述大小下,我的最后一个单元格不会显示(我不明白为什么,因为返回的高度与以前的单元格相似,并且与以前的单元格一样有很大的显示空间),请参见下面的屏幕截图:
当我将尺寸硬编码为以下值时:
return CGSizeMake(_sponsoredCollectionView.frame.size.width/3 - 7,250);
如图所示(单元格标题为“科口”,但由于硬编码250的高度,上面和下面显然有很多空白,请参见下面的屏幕截图:
此外,我正在执行以下操作,以便CollectionView在重新加载后根据单元格调整大小
[_sponsoredCollectionView reloadData];
dispatch_async(dispatch_get_main_queue(), ^{
_sponsoredCollectionViewHeightConstraint.constant = _sponsoredCollectionView.collectionViewLayout.collectionViewContentSize.height + 0;
});
我无法理解问题是什么:S请帮助!经过一整晚的反复试验和研究,我最终通过更改
\u发起的CollectionViewHeightConstraint来解决它。在性能更新中使用常量,如下所示:
return CGSizeMake(_sponsoredCollectionView.frame.size.width/3 - 7, (_sponsoredCollectionView.frame.size.width/3 - 7 + nameHeight + cuisineHeight + addressHeight + timingHeight + paddings));
[_sponsoredCollectionView reloadData];
dispatch_async(dispatch_get_main_queue(), ^{
[self.sponsoredCollectionView performBatchUpdates:^{
_sponsoredCollectionViewHeightConstraint.constant = _sponsoredCollectionView.collectionViewLayout.collectionViewContentSize.height + 5;//_sponsoredCollectionView.contentSize.height + 5;
} completion:nil];
});
请问有人能帮忙吗?尝试了太久但无法解决