在UITableview部分中获取最后一个单元格

时间:2013-12-16 04:41:17

标签: ios uitableview nsindexpath

我在UITableView中有一个有多行的部分。我希望获得该部分的最后一行或最后一个单元格,以便在其上添加披露指示符。

我想要使用的一种方式是:

NSIndexPath *lastCellIndexPath = [NSIndexPath indexPathForItem:[self.tableView numberOfRowsInSection:2]-1 inSection:2];

是否有其他最佳方法可以获取某个部分上最后一个单元格的单元格或索引路径?

7 个答案:

答案 0 :(得分:44)

    NSInteger totalRow = [tableView numberOfRowsInSection:indexPath.section];//first get total rows in that section by current indexPath.
    if(indexPath.row == totalRow -1){
         //this is the last row in section.
    }
希望它有所帮助。

我是在 tableView:willDisplayCell:forRowAtIndexPath:方法

中做到的
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;

答案 1 :(得分:4)

    - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{

        //Section 0
        if (indexPath.section == 0) {

            // Is Last row?
            if ([dataSouceArray count] == (indexPath.row+1)) {
                //Yes

                cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;


            }
            else{
                // other rows

                cell.accessoryType = UITableViewCellAccessoryNone;

            }


        }


    }

答案 2 :(得分:3)

Swift版本:

let totalRows = tableView.numberOfRows(inSection: indexPath.section)
//first get total rows in that section by current indexPath.
if indexPath.row == totalRows - 1 {
    //this is the last row in section.
}

答案 3 :(得分:2)

您应该在cellForRowAtIndexPath方法中执行此操作。您可以轻松地检测到此单元属于哪个部分以及它是否是最后一个部分。

答案 4 :(得分:0)

您可以从您在委托方法中设置的数据源中获取它, 您分配的数据源  numberOfRowsInSection方法。

[arrayStores lastObject];

所以在cellForRowAtIndexPath方法中你可以轻松查看它,

答案 5 :(得分:0)

我想知道我是如何错过它的。最简单的解决方案就在这里.. 我根据我的要求在didSelectRowAtIndexPath方法中写道。

if (indexPath.row ==userAccountsList.count-1)
{
    NSLog(@"last row it is ");
       }

在上面的代码中,userAccountsList是我们传递给tableview的数组。

答案 6 :(得分:0)

Swift 4版本:-

  let totalRow =
            tableView.numberOfRows(inSection: indexPath.section)
        if(indexPath.row == totalRow - 1)
        {
            return
        }