如何通过单击表视图中的按钮来添加其他文本字段

问题描述 投票:0回答:1

我正在尝试添加一个选项以在表内添加其他学生字段,以便用户可以添加多个学生姓名。

但是我很困惑如何使用表视图来做到这一点。

我不希望隐藏具有特定字段数的视图。

class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {


struct listItems{

    var title : String
    var isExpandable:Bool
    var maxFields :Int

    init(title:String,isExp:Bool,mxF:Int) {

        self.title = title
        self.isExpandable = isExp
        self.maxFields = mxF
    }

    }
@IBOutlet weak var tblListTable: UITableView!


let data : [listItems] = [listItems(title: "Name", isExp: false, mxF: 1), listItems(title: "Student Name", isExp: true, mxF: 20), listItems(title: "Email", isExp: false, mxF: 1)]


override func viewDidLoad() {
    super.viewDidLoad()

    tblListTable.delegate = self
    tblListTable.dataSource = self

    self.tblListTable.reloadData()
    print("isLoaded")

}

func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}


func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return data.count

}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    print("cellForRow")

    let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! ListCell


    cell.lblName.text = data[indexPath.row].title

    if data[indexPath.row].isExpandable == true {
        cell.btnAddField.isHidden = false
        print("ishidden")
    }
    else {
        cell.btnAddField.isHidden = true
    }


    return cell

}

}

列表单元格类别

import UIKit

protocol AddFieldDelegate : class {
   func addField( _ tag : Int)
}

 class ListCell: UITableViewCell {

@IBOutlet weak var btnAddField: UIButton!
@IBOutlet weak var lblName: UILabel!
@IBOutlet weak var txtField: UITextField!


override func awakeFromNib() {

    super.awakeFromNib()
    // Initialization code
}

override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

}

func addField( _ tag : Int){



}

}

enter image description here

swift xcode swift3 swift4 swift5
1个回答
0
投票

您必须在单击按钮时在数据数组中附加另一个项目,然后重新加载表格视图。

© www.soinside.com 2019 - 2024. All rights reserved.