动态大小的collectionView单元会导致可见性问题-iOS

时间:2019-03-26 19:11:09

标签: ios objective-c dynamic uicollectionview cgsize

我有3列和多行的Collection View。在我的sizeForItemAtIndexPath中,我返回这样的动态CGSize

return CGSizeMake(_sponsoredCollectionView.frame.size.width/3 - 7, (_sponsoredCollectionView.frame.size.width/3 - 7 + nameHeight + cuisineHeight + addressHeight + timingHeight + paddings));

但是使用上面的大小,我的最后一个单元格没有显示(我不明白为什么,因为返回的高度与以前的单元格相似,并且有很多空间可以显示,如以前的单元格做了),请参见下面的屏幕截图: enter image description here

当我将大小硬编码为以下内容时:

return CGSizeMake(_sponsoredCollectionView.frame.size.width/3 - 7,250);

显示(带有KEKOU标题的单元格,但由于硬编码250的高度,显然上下有很多空白,请参见以下屏幕截图: enter image description here

此外,我正在执行以下操作,以便CollectionView在重新加载后根据单元格调整大小

[_sponsoredCollectionView reloadData];

dispatch_async(dispatch_get_main_queue(), ^{
  _sponsoredCollectionViewHeightConstraint.constant = _sponsoredCollectionView.collectionViewLayout.collectionViewContentSize.height + 0;
});

我无法理解问题所在:S请帮助!

1 个答案:

答案 0 :(得分:1)

最后经过一整夜的反复试验和研究,我通过像这样在public class MyController : ApiController { [BasicAuthentication] public string Get() { return "Hello"; } } 内更改_sponsoredCollectionViewHeightConstraint.constant来解决了这个问题:

performBatchUpdates