ボートの種類をそのボートの種類の定義と一致させる必要がある UITableView を使用して、簡単なマッチング ゲームを迅速に作成しようとしています。基本的に、現在、すべてがゲームで台無しになっています。セルのスタイルはplainに設定されています。問題を引き起こしている可能性のあるメソッドのコードは次のとおりです。
var currentSelectedText = "None"
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let cell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell
switch cell.textLabel.text! as String {
case "Used to carry the pharoah":
currentSelectedText = "Used to carry the pharoah"
case "Used to carry bodies as a ceremony":
currentSelectedText = "Used to carry bodies as a ceremony"
case "Had a flat deck to carry a farmer's treasure":
currentSelectedText = "Had a flat deck to carry a farmer's treasure"
case "Daily, it made a trip around the world to carry Ra":
currentSelectedText = "Daily, it made a trip around the world to carry Ra"
case "Towed by smaller boats, carrying heavy objects":
currentSelectedText = "Towed by smaller boats, carrying heavy objects"
case "Used for business and pleasure by officials/nobles":
currentSelectedText = "Used for business and pleasure by officials/nobles"
case "Carried most Egyptians and some goods":
currentSelectedText = "Carried most Egyptians and some goods"
default:
currentSelectedText = "None"
}
switch indexPath.row {
case 7:
switch cell.textLabel.text! as String {
case "Ferry":
if currentSelectedText == "Carried most Egyptians and some goods" {
cell.textLabel.text = "Correct"
cell.textLabel.textColor = UIColor.greenColor()
} else if currentSelectedText == "None" {
} else {
performSegueWithIdentifier("Game End", sender: self)
}
case "Funeral Barge":
if currentSelectedText == "Used to carry bodies as a ceremony" {
cell.textLabel.text = "Correct"
cell.textLabel.textColor = UIColor.greenColor()
} else if currentSelectedText == "None" {
} else {
performSegueWithIdentifier("Game End", sender: self)
}
case "Cargo Boat":
if currentSelectedText == "Towed by smaller boats, carrying heavy objects" {
cell.textLabel.text = "Correct"
cell.textLabel.textColor = UIColor.greenColor()
} else if currentSelectedText == "None" {
} else {
performSegueWithIdentifier("Game End", sender: self)
}
行にはさらに多くのケースがあり、行 13 までずっと ( case 8, case 9, case 10 . . .
)。私はまた、より多くのボートの種類を持っています (私は 7 つのボートの種類を持っています)。行の選択が解除されたときのメソッドもあります。
override func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
currentSelectedText = "None"
}
セル スタイルがplainに設定されていることを思い出してください。問題は次のとおりです。
- セルを選択すると、セルのテキストが「タイトル」に変わります。
- 行の選択を解除できません
- UITableView を使用したマッチング ゲームに不適切な点が他にある場合は、それを解決するために私ができることを挙げていただければ幸いです。
提供する必要があるコードがさらにある場合は、お知らせください。ありがとうございました!