2016-06-28 12 views
1

テーブルビューの特定のセルにテキストフィールドに挿入します。私は12の文字列(3つは空白です)の配列を持っています。これらの空白のセルは、テーブルビューでは、私はそれらの空のスロットに入力できるように、それらのテキストフィールドを作成する。しかし、空白のスロットにのみテキストフィールドを作成するのに問題があります。私はどうしたらいいですか?テーブルビューの特定のセルにテキストフィールドを作成する

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

たとえば、セル識別子「default」と「wTextfield」を持つ2つのセル(または1つのセルにinit(style: UITableViewCellStyle, reuseIdentifier: String?))を作成できます。 1つのセルのデフォルト、2番目のセルにはテキストフィールドがあります。あなたはcellForRowAtIndexPath方法であなたの細胞を設定する際

override func viewDidLoad() 
{   
    super.viewDidLoad() 
    //some setup 

    tableView.registerClass(MyCell, forCellReuseIdentifier: "default") 
    tableView.registerClass(MyCell, forCellReuseIdentifier: "wTextfield") 
} 

はその後、あなたはあなたのための右のセルを選択することができます:

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 
} 
彼らは(彼らの場合絵コンテから不要)絵コンテからでない場合 viewDidLoadに登録
+0

テキストフィールドを正常に作成できました。しかし、もう一つの問題があります。私がセルをスクロールするたびに、テキストフィールドの見栄えがよく見えますが、テキストフィールドもそれが想定されていないセルに表示され始めます。私はテーブルビューのリロードが行われたコードを投稿しました。私が間違っているところで私を導くことができますか? –

+0

@OsaamaShehzadあなたは削除された答えから自分のソリューションやソリューションを実装しましたか? –

+0

私は削除された答えからソリューションを実装しました。私は何かが間違っていると思う:/あなたのソリューションでは、私は最後の答えから行ったのと同じ方法でテキストフィールドを実装するのですか? –

0

文字列の値に応じて、tableView:cellForRowAtIndexPath関数で文字列値を確認し、テキストフィールドを表示/非表示にする必要があります。

+0

表示するかどうかを決定する前に、まずテキストフィールドを作成しますか?私はそうするコードを理解することはできません。 :/ –

関連する問題