我有一個自定義的UITableView與部分中的單元格而不是行,總共5個單元格。每個單元格都有一個按鈕,我希望第五個單元格按鈕(tableButton)具有與其他標題不同的標題。Swift:意外的結果cellForRowAtIndexPath
這一切都工作正常,我有下面的代碼,前4個單元格最初有正確的標題爲每個代碼。但是,當我向下滾動第5個單元格(其具有期望的標題),然後向後滾動到第一個單元格時,第一個單元格現在已經變爲標題,以專用於第五個單元格。
我在if cell.tableButton.tag == 4條件中添加了打印語句,每次向下滾動到第五個單元格時都會打印它。
import UIKit
class TableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
}
func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 5
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! CustomCell
cell.layer.borderWidth = 1
cell.layer.borderColor = UIColor.gray.cgColor
cell.tableButton.tag = indexPath.section
if indexPath.section == 4 {
cell.tableTitle.isHidden = true
cell.tableButton.setTitle("Special", for: .normal)
} else {
cell.tableButton.setTitle("Normal", for: .normal)
}
return cell
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let returnedView = UIView(frame: CGRect(x: 0, y: 0, width: tableView.bounds.size.width, height: 15))
returnedView.backgroundColor = UIColor.groupTableViewBackground
return returnedView
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 15
}
}
CustomCell.swift:
import UIKit
class CustomCell: UITableViewCell {
@IBOutlet weak var tableButton: UIButton!
@IBOutlet weak var tableTitle: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
也許細胞的狀態已經改變。在所有情況下用'[]'替換'.normal' – penatheboss
你有5個單元,5個單元? – iAviator
5個部分,每個1個細胞,共5個細胞。 –