我正在尝试在两个部分中列出一些玩家的表格 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/