カスタムビュー(UITableViewCell)を使用してリスト(UITableView)を作成し、追加ボタン(リストの外にある)をクリックすると、ユーザーのデータを受け取り、 )、新しいユーザーのカスタムビューがリストに追加され、別のユーザーの詳細を入力できます。 私はtableViewでカスタムビューを作成する方法を知っています 私はtableViewに追加する方法を知っていますが、そのテキストだけですが、tableviewに追加したいものはボタンをクリックするとcustomViewになります。カスタムUITableViewCellを動的に追加する
tableViewにテキストを追加するには、以下のようにしました。
datas.insert("new data", at: 0)
jobTableView.beginUpdates()
jobTableView.insertRows(at: [IndexPath.init(row: 0, section: 0)], with: .automatic)
jobTableView.endUpdates()
カスタムビューではどのようにしますか?
以下が私のテーブルビューで
UITableviewClass
public class MiddlePartCell: BaseCell, UITableViewDelegate, UITableViewDataSource {
let tableCell = "tableCell"
lazy var jobTableView: UITableView = {
let tv = UITableView()
tv.backgroundColor = .brown
tv.dataSource = self
tv.delegate = self
return tv
}()
lazy var addMoreButton: UIButton = {
let button = UIButton(type: .system)
button.setBackgroundImage(UIImage(named: "plus"), for: .normal)
button.tintColor = .black
button.addTarget(self, action: #selector(handleAddJob), for: .touchUpInside)
button.layer.cornerRadius = 20
return button
}()
@objc private func handleAddJob(){
//what should i do here
//i need to insert the custom view to the top index
jobTableView.beginUpdates()
jobTableView.insertRows(at: [IndexPath.init(row: 0, section: 0)], with: .automatic)
jobTableView.endUpdates()
}
override func setupView() {
super.setupView()
backgroundColor = .green
addSubview(jobTableView)
addSubview(addMoreButton)
jobTableView.register(UITableViewCell.self, forCellReuseIdentifier: tableCell)
_ = addMoreButton.anchor(nil, left: leftAnchor, bottom: bottomAnchor, right: nil, topConstant: 0, leftConstant: 10, bottomConstant: 10, rightConstant: 0, widthConstant: 50, heightConstant: 50)
_ = jobTableView.anchor(topAnchor, left: leftAnchor, bottom: addMoreButton.topAnchor, right: rightAnchor, topConstant: 0, leftConstant: 0, bottomConstant: 0, rightConstant: 0, widthConstant: frame.width, heightConstant: frame.height)
}
public func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: tableCell, for: indexPath)
cell.textLabel?.text = datas[indexPath.item]
return cell
}
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return datas.count
}
}
あなたのhandleAddJob関数でもデータソース配列に挿入する必要があります。 – koropok
@ koropokどのように新しいカスタムビューをテーブルビューに追加することができます – SimpiMind
カスタムビューでは、新しいUITableViewCellを意味しますか?私はあなたの質問を理解できるかどうか分からない。 – koropok