如何确定何时添加第n个元素以重新加载Swift中的表视图行?

时间:2017-07-21 00:43:53

标签: ios swift uitableview uicollectionview

我的UITableViewCell包含UICollectionView。在UICollectionView中,每个“行”总共可以容纳4 UIImages。我有点困难时间弄清楚如何确定何时添加第n个元素以生成“下一个”行的逻辑,以便我可以重新加载表视图行以扩展其UITableViewCell高度。 / p>

例如,以下是UITableViewCell中第一行与4张图片的对比情况:

[ x x x x]  

在我的代码中,添加第5张图片后,UITableViewCell的高度会扩展以适应额外的第5张图片:

[ x x x x]
[ 5      ]

继续使用第5,第9,第13,第17等图像,我想在重新加载表格视图行之前检查它以扩展UITableViewCell的高度以适合下一组图像。

图像被添加到一个数组中,目前我正在做这样的事情:

if (images.count % 5) == 0
{
    self.imagesTableView.reloadRows(at: [ IndexPath(row: 0, section: 4) ],
                                            with: UITableViewRowAnimation.none)
}

显然,逻辑只有在它的5的倍数时才有效。我觉得这是一个简单的逻辑检查,但我不能为我的生活弄明白。

有人能指出我正确的方向吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

我可能完全忽略了你的问题,但......

我认为应该是:

update that_table
set global_variable = global_variable + 1
where ID IN(Select ID from another_table);

如果您需要,还可以检查(images.count> 5)以防第一次添加的图像上运行的代码出现问题。

答案 1 :(得分:1)

您案件的正确条件是

let isMultiple = ((i-1) % n) == 0

let isMultiple = (i % n) == 1

实施的想法是这样的:

let itemsPerRow = 4
let filter = { (itemNumber: Int) -> Bool in
    return (itemNumber > itemsPerRow) && ((itemNumber % itemsPerRow) == 1)
}
print(Array(1...20).filter(filter))
// prints [5, 9, 13, 17]

答案 2 :(得分:0)

看起来你会想要一些类似的东西:

{"message": "Internal server error"}

我必须快速输入这个答案,因此可能会出现一个错误。让我知道它是怎么回事!