如何知道tableview行是奇数还是甚至不知道它所在的部分

时间:2014-12-30 16:16:40

标签: ios objective-c listview tableview

我正在创建一个应用程序,我将获取用户的电话簿并将其显示在列表视图中。我将电话簿分成按名称排序的部分。我希望按偶数和赔率交替行如果问题是indexPath.row如果新部分开始则重置为零。我试图得到它是一个奇怪的甚至是行的AGNOSTIC 我试过了

  - (void)tableView:(UITableView *)tableView
    willDisplayCell:(UITableViewCell *)cell
    forRowAtIndexPath:(NSIndexPath *)indexPath
    {
    if(switcher == 0)
    {
     switcher = 1;
    }
     else
     {
      switcher = 0;
     }
}

希望偶数选择器每次显示新单元格时都会改变。 这几乎可以工作,但有时如果我停止并再次开始滚动我将获得零两次或一次两次(这是不完美的)。

提前谢谢! [我为当前结果添加了一张图片,为期望的结果添加了另一张图片][1]

1 个答案:

答案 0 :(得分:6)

添加在给定部分之前的所有部分中的行数。然后你可以做模数运算来确定它是偶数还是奇数。您可以在cellForRowAtIndexPath:中使用此功能根据isOdd更改颜色。

NSUInteger row = indexPath.row;
for (int i = 0; i < indexPath.section; i++) {
    row += [tableView numberOfRowsInSection:i];
}
BOOL isOdd = row % 2;  // if it is divisible by 2, this will be 0. if it isn't, it is 1