快速将文本字段添加到 UITableViewCell
Posted
技术标签:
【中文标题】快速将文本字段添加到 UITableViewCell【英文标题】:Add a Text Field to A UITableViewCell in swift 【发布时间】:2017-04-11 09:01:39 【问题描述】:我正在尝试在单击按钮时动态添加文本字段。
我认为最简单的方法是创建一个初始表格视图,然后动态添加包含文本字段的新单元格。
但是,当我添加一个新单元格时 - 文本字段下方显示 2 个单元格 - 我无法弄清楚我做错了什么......
// create a cell for each table view row
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
print("in delegte table view")
return createTableRow()
func createTableRow() -> UITableViewCell
let cell:UITableViewCell = self.extraGuestsTable.dequeueReusableCell(withIdentifier: cellReuseIdentifier) as UITableViewCell!
cell.textLabel?.text = "some text"
let tf = UITextField(frame: CGRect(x: 20, y: 100, width: 300, height: 20))
tf.placeholder = "Enter text here"
tf.font = UIFont.systemFont(ofSize: 15)
//cell.contentView.addSubview(tf)
cell.addSubview(tf)
return cell
如何使文本字段出现在正确的表格视图单元格中? 谢谢
编辑
谢谢大家 - 正如一些人指出的那样,问题在于 y 位置设置为 100 - 因此显示在单元格下方。 应该是:
let tf = UITextField(frame: CGRect(x: 20, y: 0, width: 300, height: 20))
【问题讨论】:
【参考方案1】:文本字段框架应为单元格大小,并检查您的数据源
使用
cell.contentView.addSubview(tf)
而不是cell.addSubview(tf)
默认高度为 44,如果您想要更多,请实现各自的委托
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
return 200
最后添加代码
class customCell: UITableViewCell
override func awakeFromNib()
super.awakeFromNib()
// Initialization code
override func setSelected(_ selected: Bool, animated: Bool)
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
然后更改您的代码:
let cell: customCell = self.extraGuestsTable.dequeueReusableCell(withIdentifier: cellReuseIdentifier) as customCell!
let tf = UITextField(frame: CGRect(x: 20, y: 0, width: 300, height: 20))
tf.placeholder = "Enter text here"
tf.font = UIFont.systemFont(ofSize: 15)
//cell.contentView.addSubview(tf)
cell.addSubview(tf)
return cell
【讨论】:
我已经试过了,它目前被注释掉了,但它没有修复它 你的单元格高度是多少?你给y位置100?创建自定义单元格并使用它。 我实际上没有设置单元格高度——因为单元格是动态的——上面的代码就是全部,情节提要中没有任何内容。数据源也只是一个空数组: var tableData = [String]() 在您的数据源中返回一些计数并检查 使用自定义单元格以上是关于快速将文本字段添加到 UITableViewCell的主要内容,如果未能解决你的问题,请参考以下文章
将占位符添加到 UITextField,如何以编程方式快速设置占位符文本?
快速解析时无法在json post请求参数中添加文本字段输入的文本