2016-06-28 58 views
1

我想插入到tableview的特定单元格的文本字段中。我有12个字符串的数组(其中3个是空的空格)。在tableview中的那些空白单元格中,我想在它们中创建一个文本字段,以便用户可以键入这些空白插槽。但是,我仅在那些空白的插槽中创建文本字段时遇到问题。我应该怎么做?在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

到目前为止你有什么?请粘贴一些代码.. – tbilopavlovic

+0

首先获取数组值并检查值是否为空。如果它为空,则将您的文本字段添加到单元格。否则,添加字符串值。 – Signare

+0

@ user1941284我刚刚发布了代码。 items是我用来创建行的数组的名称。 –

回答

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 
} 
+0

我能够成功创建文本字段。但现在还有另一个问题。每当我滚动单元格时,文本字段看起来都不错,但是文本字段也开始显示在不应该出现的单元格上。我已经发布我的代码重新加载tableview完成。你能指导我,我错了吗? –

+0

@OsaamaShehzad你是否实施了我的解决方案或解决方案? –

+0

我从删除的答案实施了解决方案。我觉得有什么不对的地方:/在你的解决方案中,我是否像我从上次回答中那样执行文本字段 –

0

您应该检查您的tableView:cellForRowAtIndexPath函数中的字符串值,并根据字符串值显示/隐藏文本字段。

+0

如何在决定是否显示它之前在第一个地方创建文本字段?我无法弄清楚这样做的代码。 :/ –

相关问题