在Swift 4中,可以通过以下步骤将按钮的Action设置为用户输入文本时动态创建的每个单元格:
UITableViewDataSource
和UITableViewDelegate
协议。tableView(_:cellForRowAt:)
方法中,为每个单元格创建按钮,并将其Action设置为一个自定义方法。例如:func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! CustomTableViewCell
// 创建按钮
let button = UIButton(type: .system)
button.setTitle("按钮", for: .normal)
button.addTarget(self, action: #selector(buttonTapped(_:)), for: .touchUpInside)
// 将按钮添加到单元格
cell.contentView.addSubview(button)
// 设置按钮的约束
button.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
button.topAnchor.constraint(equalTo: cell.contentView.topAnchor),
button.leadingAnchor.constraint(equalTo: cell.contentView.leadingAnchor),
button.bottomAnchor.constraint(equalTo: cell.contentView.bottomAnchor),
button.trailingAnchor.constraint(equalTo: cell.contentView.trailingAnchor)
])
return cell
}
buttonTapped(_:)
,用于处理按钮点击事件。在该方法中,你可以获取用户输入的文本,并根据需要执行相应的操作。例如:@objc func buttonTapped(_ sender: UIButton) {
// 获取按钮所在的单元格
guard let cell = sender.superview?.superview as? CustomTableViewCell else {
return
}
// 获取用户输入的文本
guard let text = cell.textField.text else {
return
}
// 执行相应的操作,例如将文本显示在控制台上
print("用户输入的文本:\(text)")
}
在上述代码中,假设你的自定义单元格类名为CustomTableViewCell
,并且该单元格中包含一个文本输入框textField
。
通过以上步骤,你可以实现将按钮的Action设置为用户输入文本时动态创建的每个单元格。请根据你的实际需求进行适当的修改和调整。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云