0

私はNSFetchedResultsControllerによって制御されるUITableViewを持っています。私は最初の行に単一のセルを追加し、このセルを静的にしたいと思います。つまり、別のView Controllerを開くボタンがあります。iOS - UITableViewは動的テーブルに単一の静的セルを追加します

これまでは、結果コントローラとテーブルを取得しても問題ありませんでした。今私はちょっと混乱している。私はこれをどのようにするべきですか?

代わりにヘッダーを使用しても問題ありませんが、このヘッダーは常に上に表示したくありません。私はこのセルをチャットパネル上のWhatsApp iOS "Create new group"セルのようにしたい。

ありがとうございました!

+0

: それは次のようにすることができますこれを処理するコードを書く必要はありません。 – iphonic

+0

セルを作成する代わりに、テーブルビューのヘッダーにボタンを追加する必要があります。 – User511

+0

ビューを追加するのが最適です!ありがとう、私はなぜ私がこれを考えなかったのか分からない。ありがとうございました! – anyName

答えて

0

NSFetchedResultsController +1からフェッチされた行数でtableviewを作成する必要があります。またcellForRowIndexメソッドでは、indexPath.row == 0のようなチェックを追加する必要があり、そこで変更を加えます。

また、そのセクション内のそのボタンの操作を追加する必要があります。最初の行に別のカスタムtableviewを設定することもできます。 >ヘッダービューとして定期的なセルの上にその上にUIViewのをドラッグして、その上にボタンを追加してのViewControllerでアクション - これを行う最も簡単な方法は、後藤のUITableViewである

func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: IndexPath) -> UITableViewCell { 

    if(indexPath.row==0){ 
    let cell = tableView.dequeueReusableCell(withIdentifier: "CellWithButton", for: indexPath) as! CellWithButton 
    } 
    else{ 
     let cell = tableView.dequeueReusableCell(withIdentifier: "OtherCells", for: indexPath) as! OtherCells 
     //here add data for cells from your array 
    } 
return cell 
} 
0
var dataArray = ["A","B","C"] 

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return self.dataArray.count+1 
} 

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
{ 
    if indexPath.row == 0 
    { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "CreateNewGroupCell") as! CreateNewGroupCell 
     return cell 
    } 
    else 
    { 
     // Get the data from Array 
      let data = self.dataArray[indexPath.row-1] 

     // Logic to show other cells 
      let cell = tableView.dequeueReusableCell(withIdentifier: "OtherCell") as! OtherCell 
      return cell 

     // .... 
    } 

} 
関連する問題