Ios 使UICollectionView中的最后一个单元格填充宽度
在我的Ios 使UICollectionView中的最后一个单元格填充宽度,ios,swift,uicollectionview,Ios,Swift,Uicollectionview,在我的UICollectionView中,最后一个单元格indexPath是10。我要最后一个单元格填充宽度。现在每行有2个单元格,但我希望最后一个单元格填充整个宽度。这就是我尝试过的 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
UICollectionView
中,最后一个单元格indexPath
是10。我要最后一个单元格填充宽度。现在每行有2个单元格,但我希望最后一个单元格填充整个宽度。这就是我尝试过的
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let width = (view.frame.size.width - 40) / 2
if indexPath.item == 10 {
return CGSize(width: view.frame.size.width, height: CGFloat(100))
}
return CGSize(width: width, height: 100)
}
当我运行应用程序并按下最后一个单元格时,此输出将运行:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
// handle tap events
print("You selected cell #\(indexPath.item)!")
}
但不知怎的,这没有任何作用。有什么建议吗?我自己做的。我忘了添加
UICollectionViewDelegateFlowLayout
是我自己做的。我忘了添加UICollectionViewDelegateFlowLayout
集合视图中确实有11项吗?第11个单元格使用的宽度是多少?@rmaddy我使用的是didSelectItemAt
,当我点击最后一个单元格时,它给了我输出您选择的单元格#10代码>。所有单元格的宽度都等于:let width=(view.frame.size.width-40)/2
您没有回答我的第一个问题。我不知道您是如何打印的,所以仍然不清楚表视图中是否有10项或11项。请记住,indexPath.item
是基于0的。@rmaddy很抱歉,我的问题现在也被打印出来了。如果indexath.item==4,也尝试更改为{
但它什么也没做。你在集合视图中真的有11个项目吗?第11个单元格使用的宽度是多少?@rmaddy我正在使用didSelectItemAt
,当我点击最后一个单元格时,它给了我输出你选择的单元格#10!
。所有单元格的宽度都等于:let width=(视图.框架.尺寸.宽度-40)/2
您没有回答我的第一个问题。我不知道您的打印方式,因此仍然不清楚您在表视图中实际是有10项还是11项。请记住,indexPath.item
是基于0的。@rmaddy很抱歉,现在也用打印更新了我的问题。如果indexPath.item==4,还尝试更改为{
但它什么也不做。