1

TableViewにビューを追加または削除するにはどうすればよいですか?

tableViewに何もない場合は常に「接続なし」を表示したいのですが、データがある場合は通常のtableViewが必要です。

私はたくさんの質問をチェックしましたが、そのすべてがセルからビューを削除し、セル内ですべてを行うという奇妙な方法を持っていました。ただし、XcodeでUIViewをtableViewにドラッグすると、一緒にスクロールできることもわかりました。

これを行い、ビューを削除したい場合は、そのビューの非表示プロパティをtrueに設定するだけです。

ここでの問題は、ビューがかつてあった場所に空白があることです。完全に消えてそこにないようにしたいのですが、サブビューの追加/削除がうまくいきませんでした。他にもたくさんの解決策を試しました。

4

1 に答える 1

1

そのビューをXcodeのバケットに入れるだけで、ViewControllerには入れることができないことがわかりました。(写真を参照)

ビューコントローラにはありません

UIViewそして、そこへの出口を作れば、それでも使えることがわかりました。ビューをこの位置に移動する前に、プログラムで、またはIBでビューを設計して適切なサイズにする必要があったことに注意してください。これは、IBではビューが表示されなくなったためです。

次に、TableViewControllerクラスでViewWillAppear、TableViewをバックアップする配列の数をチェックしていました。ゼロの場合は、(アウトレットを使用して)ビューを非表示にするかどうかを設定します。

次に、私はこのコードを使用しました:

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if (noConnectionView.hidden)
    {
        return 0;
    } else {
        return 480;
    }
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    if (noConnectionView.hidden)
    {
        return nil;
    } else {
        return noConnectionView;
    }
}

これにより、ポップオーバーがいっぱいになります。セクションメソッドのセル数は、すでにチェックしたのと同じカウント(テーブルが空の場合はゼロ)を返すため、表示されるのはそれだけです(空のセルはありません)。

表示するものがある場合ViewWillAppearは、毎回呼び出され(削除されるたびに、ビューを呼び出すと再び表示されます)、tableViewはヘッダーを削除し、通常のtableViewのように動作します。

UITableViewControllerこれは、ナビゲーションコントローラーと一緒にまたは順番に使用できるので素晴らしいです。

于 2012-07-17T19:41:18.253 に答える