Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何将UITableView中的行标记为1、2、3等_Ios_Swift_Uitableview - Fatal编程技术网

Ios 如何将UITableView中的行标记为1、2、3等

Ios 如何将UITableView中的行标记为1、2、3等,ios,swift,uitableview,Ios,Swift,Uitableview,我有一个带有CustomCell的UITableView,其中包含多个标签。在其中一个标签中,我希望将行号显示为1、2、3等。我知道我可能可以使用一个变量来实现这一点,并在每次向表中输入新项时增加它,但我希望使用tableView中的indexPath.row,以使代码更干净 这就是我的工作原理,我说这类,因为它总是在前两行加上1,所以理论上不起作用 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: N

我有一个带有CustomCell的UITableView,其中包含多个标签。在其中一个标签中,我希望将行号显示为1、2、3等。我知道我可能可以使用一个变量来实现这一点,并在每次向表中输入新项时增加它,但我希望使用tableView中的
indexPath.row
,以使代码更干净

这就是我的工作原理,我说
这类
,因为它总是在前两行加上1,所以理论上不起作用

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("reusableCell", forIndexPath: indexPath) as! CustomCell

    // some other labels here

    if indexPath.row == 0 {
        let rowCounter = indexPath.row + 1
        cell.displayRowNumber!.text = String(rowCounter)
    }else{
        cell.displayRowNumber!.text = String(indexPath.row)
        print(indexPath.row)
    }

    return cell
}
有什么建议吗

仅供参考-用户还可以通过滑动删除行


谢谢

要使您的逻辑正常工作,您只需在
indexath.row
中添加1即可。行号将从0增加到
n
项。并且,通过向所有迭代添加1,您将获得项计数器的结果(1,2,3,4,…,n)


要使逻辑正常工作,只需将1添加到
indexPath.row
。行号将从0增加到
n
项。并且,通过向所有迭代添加1,您将获得项计数器的结果(1,2,3,4,…,n)


正如其他人所说,只需将displayRowNumber.text设置为
String(indexPath.row+1)

添加或删除行时,数字将不再正确。调用reloadData()将修复行号,但不会获得行动画


如果要同时更新行号并使删除动画正常工作,可以触发删除动画,然后使用表视图的
indexPathsForVisibleRows
属性获取可见单元格的数组,并循环该数组,使用表视图方法
cellforrowatinexpath
获取每个单元格,并自己更新这些单元格的标签。其效果是删除动画将发生,然后数字将更新,而不会重画其余单元格。

正如其他人所说,只需将displayRowNumber.text设置为
字符串(indexPath.row+1)

添加或删除行时,数字将不再正确。调用reloadData()将修复行号,但不会获得行动画



如果要同时更新行号并使删除动画正常工作,可以触发删除动画,然后使用表视图的
indexPathsForVisibleRows
属性获取可见单元格的数组,并循环该数组,使用表视图方法
cellforrowatinexpath
获取每个单元格,并自己更新这些单元格的标签。其效果是,删除动画将发生,然后数字将更新,而不重新绘制其余单元格。

如果希望从1开始按顺序编号,则应该是indexath.row+1,无条件。它可以工作,我唯一不喜欢的是我必须
重新加载数据()
committeeditingstyle
中的
,因为它在通过滑动删除行时没有更新,我不喜欢的是,删除行时它没有动画。我想这没什么大不了的。@fs\u tigre,要删除单元格而不调用
reloadData()
和动画,必须使用
tableView.deleteRowsAtIndexPaths([indexPath],withRowAnimation:.Left)
,其中,
indepath
是已删除单元格的行/节。它正在删除精细和动画,但不会更新为1,2,3。。。当一行被删除并且我重新加载它时,它会更新,但我会丢失动画。删除一行时,您不需要调用
reloadData
。但至少需要重新加载已删除行下方的所有可见行。如果插入一行也是一样。如果希望它们从1开始按顺序编号,它应该是indexath.row+1,无条件。它可以工作,我唯一不喜欢的是我必须
reloadData()
committeeditingstyle
中的
,因为它在通过滑动删除行时没有更新,我不喜欢的是,删除行时它没有动画。我想这没什么大不了的。@fs\u tigre,要删除单元格而不调用
reloadData()
和动画,必须使用
tableView.deleteRowsAtIndexPaths([indexPath],withRowAnimation:.Left)
,其中,
indepath
是已删除单元格的行/节。它正在删除精细和动画,但不会更新为1,2,3。。。当一行被删除并且我重新加载它时,它会更新,但我会丢失动画。删除一行时,您不需要调用
reloadData
。但至少需要重新加载已删除行下方的所有可见行。如果插入一行也是一样。正如我之前所评论的,它可以工作,但我不喜欢我必须在
committeeditingstyle
方法中
reloadData()
,因为它在通过滑动删除行时不会更新,我不喜欢的是删除行时它不会动画。我想没什么大不了的。正如我之前评论的那样,它可以工作,但我不喜欢我必须在
committeeditingstyle
方法中
reloadData()
,因为它在通过滑动删除行时没有更新,我不喜欢的是删除行时它没有动画。我想没什么大不了的。你介意举一个你描述的例子吗?我无法让它工作。我没有任何现有的代码。我必须创建一个测试项目来完成这项工作,但实际上我没有时间这么做。编辑您的帖子并在结尾添加新代码,我会看一看。我明白,我会自己尝试解决,我只是有点困惑,在
committeditingstyle
方法或
cellforrowatinexpath
中,更新需要发生在哪里。非常感谢你的帮助。你介意举一个你描述的例子吗?我无法让它工作。我没有任何现有的代码。我想要
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("reusableCell", forIndexPath: indexPath) as! CustomCell

    // some other labels here
    let rowCounter = indexPath.row + 1
    cell.displayRowNumber!.text = String(rowCounter)

    return cell
}