代码如下
class TableViewController: UITableViewController, UITextFieldDelegate {
let fruitsComponents: [String] = ["Apple", "Banana", "Grape", "Pear"]
let fruitsTextField = UITextField(frame: CGRect(x: 100, y: 7.5, width: 50, height: 30))
override func viewDidLoad() {
super.viewDidLoad()
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 4
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "fruitsCell", for: indexPath)
cell.textLabel?.text = fruitsComponents[indexPath.row]
fruitsTextField.backgroundColor = UIColor.darkGray
fruitsTextField.delegate = self
cell.addSubview(fruitsTextField)
return cell
}
1节好。
可以4行。
用于细胞的标题是苹果,香蕉,葡萄,梨。
但仅将1个子视图添加到第四行“梨”中。
问题1。为什么不将3个子视图添加到行中?
问题2。如何为所有行添加子视图?
谢谢
答案 0 :(得分:1)
由于只有一个FruitsTextField实例,因此它只能是一行的子视图。因此,
以此类推。
主要问题是,不应重复使用每个cellForRow
子视图,因为正在重复使用单元格,因此即使每个单元格都有不同的文本视图,也可能会得到更多的子视图每个单元格中只有一个文本视图。
最好创建自己的自定义UITableViewCell
子类,该子类将文本视图保留为子视图,连接插座并继续进行下去。您可以在网上找到几个示例,只需检查“ UITableViewCell子类”