我试着用两个部分列出一些球员的桌面视图。
第一节是目前正在比赛的球员,第二节是替补。我有一个数据集所有的球员都在。
我是如何做到这一点的,我创建了两个部分let sections = ["playing", "subs"]

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    if section == 0 {
        return 11
    } else {
        return players.count - 11
    }
}

我本希望这会把前11名球员放在我的阵型中,这看起来确实是这样,但是,当我滚动表格时,当我进入下一个阵型时,它崩溃了,我相信。我假设每个数据段都必须以indexPath 0开头?我只有一组数据。
随着我的应用程序的工作,我希望能够重新排序跨越两个部分的人,因为他们正在播放或是子床。iOS实现这一点的合适方法是什么?
这是位于indexpath方法处的行的单元格:
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = playerTableView.dequeueReusableCellWithIdentifier("MatchPlayerCell")! as! MatchPlayerCell
    cell.configureForMatchPlayer(orderedPlayers[indexPath.row])
    return cell
}

它在这里崩溃了,有EXC_BAD_指令。很高兴用更多的信息更新我的问题,我对iOS还比较陌生,以前也没有尝试过移动行

最佳答案

我认为最好创建3个单独的nsmutable数组。总玩家第一名。第二个是“播放”。第三个是“潜艇”。
然后从totalPlayers中相应地添加/删除播放器。然后可以在numberOfRowsInsection中正确返回[array count]。

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    if section == 0 {
        return players.count
    } else {
        return subs.count
    }
}

在这个代表身上做数学真是不好的练习。因为你需要处理所有值,在你的情况下,如果player-11小于0,应用程序将崩溃。

关于ios - 多个部分的索引超出范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39969448/

10-11 14:50