我想在tableview的特定单元格中插入文本字段。我有一个12个字符串的数组(其中3个是空格)。在tableview中的那些空白单元格,我想在其中创建一个文本字段,以便用户可以键入这些空插槽。但是我只在那些空白的插槽中创建文本字段时遇到问题。我该怎么办?
var items = ["Apple", "Fish", "Dates", "Cereal", "Ice cream", "Lamb", "Potatoes", "Chicken", "Bread", " ", " "," "]
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cellFruit", forIndexPath: indexPath)
if (items[indexPath.row] == " ") {
cell.textLabel?.text = items[indexPath.row]
let collar = UIColor.init(red: 175, green: 189, blue: 212, alpha: 0.4)
cell.backgroundColor = collar
return cell
}
else {
cell.textLabel?.text = items[indexPath.row]
let coL = UIColor.init(red: 59, green: 89, blue: 152, alpha: 0.2)
cell.backgroundColor = coL
return cell
}
}
这是我如何重新加载细胞。现在文本字段正在显示,但它开始显示在字符串为非空格的单元格中。
func tableView(tableView: UITableView, moveRowAtIndexPath sourceIndexPath: NSIndexPath, toIndexPath destinationIndexPath: NSIndexPath) {
if (sourceIndexPath.row != destinationIndexPath.row){
let temp = items[sourceIndexPath.row]
items.removeAtIndex(sourceIndexPath.row)
items.insert(temp, atIndex: destinationIndexPath.row)
}
tableView.reloadData()
}
答案 0 :(得分:2)
例如,您可以创建两个单元格(或一个使用init(style: UITableViewCellStyle, reuseIdentifier: String?)
的单元格),单元格标识符为“default”和“wTextfield”。一个单元格默认,第二个单元格将具有文本字段。如果它们不是来自故事板,则在viewDidLoad
中注册它们(如果它们来自故事板,则不需要):
override func viewDidLoad()
{
super.viewDidLoad()
//some setup
tableView.registerClass(MyCell, forCellReuseIdentifier: "default")
tableView.registerClass(MyCell, forCellReuseIdentifier: "wTextfield")
}
然后,当您使用cellForRowAtIndexPath
方法设置单元格时,您可以为您选择正确的单元格:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
var cellId = "default"
if items[indexPath.row] == " " {cellId = "wTextfield"}
let cell = tableView.dequeueReusableCellWithIdentifier(cellId, forIndexPath: indexPath) as! MyCell
//set up your cell now
return cell
}
答案 1 :(得分:0)
您应该在tableView:cellForRowAtIndexPath函数中检查字符串值,并根据您的字符串值显示/隐藏文本字段。