我想创建包含多行的动态表视图,其中包含不同的数据。我不知道如何在swift中创建新行。我想创建3行并向每行添加不同的数据。我知道我可以更新数组数据并重新加载tableview。但是当我在循环中更新数据并重新加载tableview时,只显示最后的数据。 Tableview在索引2处的for循环中添加的缺失数据。 这是我的代码:
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{
}
}
}
答案 0 :(得分:0)
如果您在{
"dev": {
"app_function": "hello.app",
"aws_region": "us-east-1",
"profile_name": null,
"project_name": "flask",
"runtime": "python3.6",
"s3_bucket": "zappa-xxxxxxxxx",
"cors": true
},
"authorizer": {
"arn": "arn:aws:lambda:us-east-1:xxxxxxxxxxx:function:flask-authorizer",
"result_ttl": 0
}
}
更新数据,则可以调用products
,这将再次调用所有tableView函数。假设你已将它们设置为反映你想要的东西,那么这应该会创建一个新行。