私は速くて新しく、セグを実行した後にすべてのテーブルビューセルを選択解除する問題を抱えています。今、トップセルを除いて、セグを実行すると、すべてのセルが強調表示されたままになります。一番上のものも選択可能であり、セグを実行しますが、ハイライトはまったくありません。スウィフト - テーブルビューのセルが強調表示されない - トップ1を除く - 何も問題なし
これは奇妙な動作ですが、私はすべての基本を試しました。
私は
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}
を試してみた私はセグエ法の準備でそれをも試してみた
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if let selectionIndexPath = self.tableView.indexPathForSelectedRow {
self.tableView.deselectRow(at: selectionIndexPath, animated: animated)
}
}
を試してみました。
私はまた、細胞からそれを試してみた:cell.selectionStyle = .none
私も誰にも負けないストーリーボードで「選択」を変更しようとしました。
何も動作を変更していないので、私は迷っています。私はどこかに何かを混乱させて、それが何かを見つけることができないと思う。
誰かが見たいと思えば、ここに私のtableviewクラスがあります。あなたのcellForRowAt
で
import UIKit
import Firebase
class DraftListCell : UITableViewCell {
@IBOutlet weak var playerName: UILabel!
@IBOutlet weak var playerPrice: UILabel!
@IBOutlet weak var priceRemaining: UILabel!
@IBOutlet weak var vsLabel: UILabel!
@IBOutlet weak var injuredLabel: UILabel!
@IBOutlet weak var gameTimeLabel: UILabel!
}
class NBADraftList: UIViewController, UITableViewDelegate, UITableViewDataSource, FIRDatabaseReferenceable{
@IBOutlet var tableView: UITableView!
let cellReuseIdentifier = "cell"
var ref: FIRDatabaseReference!
var players = [Player]()
let formatter = NumberFormatter()
override func viewDidLoad() {
let leftBarButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.plain, target: self, action: #selector(myLeftSideBarButtonItemTapped(_:)))
self.title = "Select"
self.navigationItem.leftBarButtonItem = leftBarButton
self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: cellReuseIdentifier)
self.tableView.rowHeight = 100.0
self.tableView.tableFooterView = UIView()
tableView.delegate = self
tableView.dataSource = self
formatter.numberStyle = .currency
formatter.maximumFractionDigits = 0
ref = FIRDatabase.database().reference().child("NBATodaysPlayers")
ref.observeSingleEvent(of: .value, with: { (snapshot) in
var players = [Player]()
for player in snapshot.children {
players.append(Player(snapshot: player as! FIRDataSnapshot))
}
self.players = players.sorted(by: { $0.Value > $1.Value })
self.tableView.reloadData()
}) { (error) in
print("error")
}
super.viewDidLoad()
}
func myLeftSideBarButtonItemTapped(_ sender:UIBarButtonItem!)
{
self.dismiss(animated: true, completion: nil)
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return players.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "DraftListCell", for: indexPath as IndexPath) as! DraftListCell
if let formattedPrice = formatter.string(from: players[indexPath.row].Value as NSNumber) {
cell.playerPrice.text = "Game Price: \(formattedPrice)"
}
if let formattedRemainingPrice = formatter.string(from: 10000 - players[indexPath.row].Value as NSNumber) {
cell.priceRemaining.text = "Remaining: \(formattedRemainingPrice)"
}
cell.playerName.text = players[indexPath.row].Name
cell.injuredLabel.text = players[indexPath.row].Inj
cell.vsLabel.text = players[indexPath.row].visiting + " @ " + players[indexPath.row].home
cell.gameTimeLabel.text = players[indexPath.row].game_time
cell.textLabel?.textColor = .white
cell.backgroundColor = .black
return UITableViewCell()
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.performSegue(withIdentifier: "BuyStats", sender: indexPath);
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "BuyStats" {
let buyStats = segue.destination as! BuyStats
if let indexPath = tableView.indexPathForSelectedRow {
let player = players[indexPath.row]
buyStats.selectedPlayer = player
}
}
}
}
こんにちはinokeyを助け
deselectAll
を言うと、チェックしてみましょうグローバル変数を設定することができます助けてくれてありがとう。私の問題は少し違っていた。私はcellForRowAtIndexから汎用のUITableViewCell()を返していました。私は再利用可能な "セル"を返すべきだった。私はこれを修正し、問題はなくなった。 –これが問題なら、この質問を閉じる必要があります@DarkhorseFantasySports –