如果动态拉取到UICollectionViewCell的高度

背景是:我自定义一个UICollectionViewLayout,其中每个Cell的高度是根据屏幕上Cell的数量计算出来的,即ItemHeight = [UICollectionView.height / numberOfItemsOnCollectionView],现在自定义的UICollectionViewCell上有个圆形的图片,需要设置layer.cornerRadius。

现在的问题是,我在UICollectionViewDataSource的collectionView:cellForItemAtIndexPath:中这么设置cornerRadius

cell.image.layer.cornerRadius = CGRectGetHeight(cell.image.bounds) / 2;

出现一个现象,就是一开始不是圆的,上下滚动下就变成圆的了,有人知道是什么原因么?

一开始:

clipboard.png
滚动后:

clipboard.png

代码在这里:https://coding.net/u/peixinchen/p/CircleCollectionViewLayout/git

阅读 12.8k
1 个回答
[cell layoutIfNeeded];
[cell configureWithItem:nil];

增加这一行代码在这个位置就可以获取到正确的frame

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏