我如何在tableView swift中使用循环

时间:2015-10-26 17:13:19

标签: swift loops tableview

我如何在cellForItemAtIndexPath中使用for循环

这是我的代码,有什么帮助吗?

我想为每个循环返回单元格

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let cell:CellCollectionView = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! CellCollectionView
    for Restaurent1 in Resturent.Restaurants
    {
        var ResturentName = eachRestaurent.name
        var ResturentDescrption = eachRestaurent.descrption
        var ResturentId = eachRestaurent.id

        cell.ResturentsName.text = ResturentName
        cell.ResturentsDescrption.text = ResturentDescrption
        cell.ResturentsId.text = String(ResturentId as! Int)
    }
    return cell
}

1 个答案:

答案 0 :(得分:5)

不要在cellForItemAtIndexPath中使用循环。该循环已内置于Cocoa中,它为需要呈现的每个单元调用cellForItemAtIndexPath实现。

此API遵循" pull"模型,而不是" push"。表格视图"拉动"来自代码的数据,而不是代码"推送"所有数据一次进入API。这种方法的优点是"拉" API不会比需要更多次回拨您。例如,如果只有100个列表中的四个餐馆可见,则您的方法将被调用四次,而不是100次。

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let cell:CellCollectionView = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! CellCollectionView
    let r = esturent.Restaurants[indexPath.row]
    cell.ResturentsName.text = r.name
    cell.ResturentsDescrption.text = r.descrption
    cell.ResturentsId.text = String(r.id as! Int)
    return cell
}