Ich möchte dynamisch Tabellenansicht mit mehreren Zeilen erstellen, die verschiedene Daten enthält. Ich weiß nicht, wie man eine neue Zeile in swift erstellt. Ich möchte 3 Zeilen erstellen und jeder Zeile unterschiedliche Daten hinzufügen. Ich weiß, dass ich Array-Daten aktualisieren und Tabellenansicht neu laden kann. Aber wenn ich Daten in Schleife und reloaded Tabellenansicht aktualisiert, werden nur letzte Daten angezeigt. Tableview fehlenden Daten, die bei Index für Schleife hinzugefügt wird in 2. Dies ist mein Code:Wie erstellt man eine dynamische Tabellenansicht mit mehreren Zeilen in swift?
var i = 0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
tableView.frame = CGRect(x: 5, y:200 ,width: self.view.frame.width, height: 400)
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
tableView.delegate = self
tableView.dataSource = self
tableView.layer.borderWidth = 2
self.view.addSubview(tableView)
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return products.count
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
let tf = UITextField(frame: CGRect(x: 320, y: 10*i , width: 300, height:20))
tf.placeholder = "_"
tf.tag = indexPath.row
tf.font = UIFont.systemFont(ofSize: 15)
let pest = UILabel(frame: CGRect(x: 10, y: 10*i, width: 300, height: 60))
pest.font = UIFont.systemFont(ofSize: 15)
pest.numberOfLines = 0
pest.text = self.products[indexPath.row]
let pp = UILabel()
pp.text = "PP"
cell.contentView.addSubview(pest)
cell.contentView.addSubview(tf)
return cell
}
override func viewDidAppear(_ animated: Bool) {
createTable()
}
func createTable(){
for index in 1...3{
if(index == 2){
i = index
self.products = ["r1","r2","r3","r4"]
tableView.reloadData()
}
else if(index == 3){
i = index
self.products = ["d1","d2","d3","d4"]
tableView.reloadData()
}
else{
}
}
}
Ich möchte Daten in Produkten zweimal aktualisieren. Aber wenn ich meine Daten zweimal aktualisiert habe und tableView.ReloadData() aufgerufen hat, werden nur die letzten Daten angezeigt. Erste Daten erscheinen nicht in der Tabelle. – Abhishek
Wollen Sie sagen, dass die Update-Daten in 'products' nicht in Ihrer TableView nach dem Aufruf von' reloadData() 'erscheinen? – LFHS
self.products = ["d1", "d2", "d3", "d4"] erscheint in der Tabellenansicht. Aber self.products = ["r1", "r2", "r3", "r4"] erscheint nicht in der Tabellenansicht. – Abhishek