ios - 索引超出多个部分的范围

标签 ios swift uitableview

我正在尝试在两个部分中列出一些玩家的表格 View 。 第 1 部分是当前正在上场的球员,第 2 部分是替补球员。我有一个包含所有球员的数据集。

我是如何做到这一点的,我创建了两个部分 let sections = ["playing", "subs"]

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

我曾希望这会将第 11 名玩家放入我的游戏部分数组中,这看起来确实如此,但是,当我滚动表格时,我相信它会在我进入下一个部分时崩溃。因此,我假设每个数据部分都必须以 0 的 indexPath 开头?而且我只有一组数据。

随着我的应用程序的运行,我希望能够在两个部分中对正在播放或被替换的人重新排序。什么是 iOS 合适的实现方式?

这是我在索引路径方法中的行单元格:

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

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

它在这里崩溃并显示 EXC_BAD_INSTRUCTION。很高兴用更多信息更新我的问题,我对 iOS 比较陌生,之前没有尝试移动行

最佳答案

我认为最好创建 3 个单独的 NSMutableArray。总玩家数第一。第二个是“玩”。第三名是“潜艇”。

然后从 totalPlayers 中相应地添加/删除玩家。然后你可以在 numberOfRowsInsection 中正确返回 [array count]。

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

在这个委托(delegate)中做数学真的是不好的做法。因为您需要处理所有值,并且在您的情况下,如果 player-11 小于 0,应用程序将崩溃。

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

相关文章:

swift - 使用有关连接我的 sql 的旧教程实现 swift 的新 try catch

uitableview - 具有多个原型(prototype)单元格的 Swift 中用于 tableView 的 UISearchBar

ios - 在 UITableViewHeaderFooterView 中更改字体大小的问题

ios - 使用未解析的标识符 'PFUser' - Swift/Xcode/Parse

ios - self.navigationController?.popViewControllerAnimated 来自 UIAlertController

ios - 将自定义 View 锚定到 Swift 中 Mapbox NavigationViewController 中的现有 View

ios - 警告 - 不兼容的指针类型,如何删除?

ios - 奇怪的快速插值错误 : Could not find member 'convertFromStringInterpolationSegment'

objective-c - 是否可以在 ios 中添加注释但不更改 map View 区域

iphone - 如何推送 ViewController 并让第一个 Controller 部分可见?