【发布时间】:2023-03-03 13:57:01
【问题描述】:
注意原来这是一个简单的错误,细胞不会“坐在底部”。然而,这是一个有趣的问题:“如何上下移动细胞。”下面是一个蛮力解决方案:编写自己的流程布局。
我很惊讶,唯一的方法是完全继承 UICollectionViewFlowLayout 并在 layoutAttributesForElementsInRect 中编写一些棘手的代码。
这可能会在将来对某人有所帮助,因为 layoutAttributesForElementsInRect 的示例代码很少。希望对您有所帮助。
--
事实证明,我的单元格不会位于底部的原因是因为我之前在我的 UICollectionViewController 中有这个...
-(void)viewDidLoad
{
[super viewDidLoad];
// the following code is very useful to, for example,
// "nudge short lists towards the middle..." - if you want the list
// to more sit in the middle of the screen, when only a few items.
cvHeight = CGRectGetHeight(self.collectionView.bounds);
[self.collectionView setContentInset:
UIEdgeInsetsMake(cvHeight * 0.175, 0, cvHeight * 0.30, 0) ]; //top,l,b,r
}
当然,当我更改为“全视图单元格大小”(每个屏幕一个单元格)时,该代码会失败。
我有一个简单的 UICollection 视图,它是 iPhone 的宽度和大约 250 高。单元格与集合视图的大小完全相同。
细胞不会居中,它们总是坐得很高。 (即,在视图之外。)
我在情节提要中的收藏视图“大小”都为零。可能是什么问题?
【问题讨论】:
-
检查您的收集单元,这可能是问题所在。
-
检查单元格上的自动调整大小或在 CollectionView 上添加部分插图(顶部)
-
单元格上的自动调整大小无关。设置 section insets 似乎一无所获 - 没有变化!
-
确保您没有从主线程外部更新集合视图,或者以可能导致它在更新中更新的方式更新,等等。我有一些奇怪的行为,我可以追溯到那种东西。
-
嗨,Caleb - 谢谢;绝对没有线程问题。不过谢谢 :O
标签: ios uicollectionview uicollectionviewcell